The driver reports via VkPhysicalDeviceDescriptorIndexingFeatures that shaderSampledImageArrayNonUniformIndexing is available. So it should be legal to call the following code in a shader:
layout (...) uniform sampler2DMSArray textures2DMSArray[some size];
...
color = texelFetch(textures2DMSArray[nonuniformEXT(textureIndex)], ivec3(uv * size, layer), int(sample));
But it's crashing the driver. It doesn't crash when removing nonuniformEXT. The callstack goes quite deep:
amdvlk64.dll!00007fffc4ccc444() Unknown
amdvlk64.dll!00007fffc4ccc568() Unknown
amdvlk64.dll!00007fffc4ccc65f() Unknown
amdvlk64.dll!00007fffc4cb6e07() Unknown
amdvlk64.dll!00007fffc4b591c8() Unknown
amdvlk64.dll!00007fffc4b5afe6() Unknown
amdvlk64.dll!00007fffc4b74e4d() Unknown
amdvlk64.dll!00007fffc4acb689() Unknown
amdvlk64.dll!00007fffc4aeb02c() Unknown
amdvlk64.dll!00007fffc4ad026b() Unknown
amdvlk64.dll!00007fffc4875717() Unknown
amdvlk64.dll!00007fffc4a23120() Unknown
amdvlk64.dll!00007fffc48eb759() Unknown
amdvlk64.dll!00007fffc48e3e42() Unknown
amdvlk64.dll!00007fffc48e53a1() Unknown
amdvlk64.dll!00007fffc4873803() Unknown
amdvlk64.dll!00007fffc467ca20() Unknown
amdvlk64.dll!00007fffc462a135() Unknown
amdvlk64.dll!00007fffc46768ca() Unknown
amdvlk64.dll!00007fffc463636c() Unknown
The dll being loaded at 00007FFFC45F0000-00007FFFC6C99000
Did you also enable that feature when creating the device? It being available as a feature of a physical device is not enough, it needs to be explicitly enabled as well.
Sure. I'm enabling VkPhysicalDeviceDescriptorIndexingFeatures.
Hi @pascal-gw
Could you please provide a minimal code which can reproduce this problem?