[Mesa-dev] ARB_fragment_layer_viewport in gallium

Roland Scheidegger sroland at vmware.com
Wed Sep 17 15:28:50 PDT 2014


ARB_fragment_layer_viewport is enabled unconditionally if geometry
shaders / multiple viewports are also enabled. This seems reasonable,
though I noticed at least it won't work for llvmpipe - entirely due to
the requirement of the viewport/layer value being zero if it wasn't
output by the gs (or if no gs is present).
I couldn't actually figure out if that would be required for d3d10
(which has this functionality as well) too, though tests don't seem to
require it (or we otherwise get lucky).
I'm wondering if other drivers have a problem with that as well? I
thought it would be trivial to fix but not so actually for llvmpipe.
(Essentially would need to note if fs reads layer/vp_index when scanning
the shader, then inject some appropriate zero output in draw somewhere,
probably draw_prepare_shader_outputs(). At this point the extension
doesn't seem worth it anymore at least if d3d10 would not require that
behavior neither since it isn't in any GL core version.)
But I guess if it's just draw having a problem with that it's not worth
a cap bit neither...

Roland


More information about the mesa-dev mailing list