Skip to content

st/pbo: fix pbo uploads without PIPE_CAP_TGSI_VS_LAYER_VIEWPORT

the code here tries to be too smart and only use a geometry shader if there's actually multiple layers being uploaded, but the fragment shader also unconditionally reads gl_Layer as long as the pipe cap for gs is set, which means that in the case when the gs is dynamically disabled due to uploading a single-layer surface, the fs has no input to read for gl_Layer and everything breaks

always using a gs isn't ideal, but it's considerably more work to manage multiple fs variants based on layer usage

Fixes: c99f2fe7 ("st/mesa: implement PBO upload for multiple layers")

Edited by Mike Blumenkrantz

Merge request reports