Skip to content

v3d: implement indirect indexing on vertex shader outputs

Iago Toral requested to merge itoral/mesa:v3d_indirect_output into main

We have been able to to handle indirect indexing on GS outputs for a while. Enabling this for VS will allow us to expose PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR on all supported shader stages, preventing the horrible if-ladder lowering that we have to do instead. With this, we no longer fail to register allocate CTS or piglit tests when disabling GLSL loop unrolling.

This series also flags Piglit's max-samplers tests as expected to fail. These use indirect indexing on sampler arrays, which is a GLSL 4.000 feature. The Mesa state tracker explicitly disables this feature for previous GLSL versions and the GLSL linker will fail to link if it observes any shaders with indirect sampler indexing and this feature disabled. The only reason we passed these tests before was that the GLSL loop unrolling will unroll loops for shaders with indirect indexing on samplers, and so, with that pass enabled we would lower indirect indexing away and the linker would not complain any more.

Merge request reports