On Mon May 22 17:19:52 2023 +0000, Giovanni Mascellani wrote:
Trying to run this shader:
struct { Texture2D tex; sampler sam[2][2]; } foo; float4 main() : sv_target { return 10 * foo.tex.Sample(foo.sam[0][0], float2(0, 0)) + tex2D(foo.sam[1][1], float2(0, 0)); }
triggers an assertion:
vkd3d:fixme:spirv_compiler_get_descriptor_binding Could not find descriptor binding for type 0x3, space 0, registers [3:3], shader type 0. shader_runner:422: Section [test], line 139: Test failed: Failed to create state, hr 0x80004005. shader_runner: ../vkd3d/libs/vkd3d/state.c:1937: unsafe_impl_from_ID3D12PipelineState: Assertion `iface->lpVtbl == &d3d12_pipeline_state_vtbl' failed. Annullato
This seems to be a missing feature in vkd3d, not a problem of vkd3d-shader, so it's not really related to this patch, but it seemed to be something worth mentioning.
That just looks like your resources aren't all bound. In this case it seems to be complaining about sampler 3.