On Wednesday, November 22, 2017 6:03:25 AM PST Neil Roberts wrote: > SYSTEM_VALUE_BASE_VERTEX has changed to be the correct value for > gl_BaseVertex, which means it will be zero when used with a > non-indexed call. The new BASE_VERTEX_ID value can be used as before > as an offset to calculate a value for gl_VertexID. These values should > be different, but this patch just makes them same for now in order to > at least retain the previous behaviour and not break gl_BaseVertexID > and gl_VertexID entirely on radeonsi. > > Note, this hasn’t been tested apart from to verify that it compiles. > --- > src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > index 0772b73..3dfed19 100644 > --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > @@ -5385,6 +5385,11 @@ _mesa_sysval_to_semantic(unsigned sysval) > case SYSTEM_VALUE_VERTEX_ID_ZERO_BASE: > return TGSI_SEMANTIC_VERTEXID_NOBASE; > case SYSTEM_VALUE_BASE_VERTEX: > + case SYSTEM_VALUE_BASE_VERTEX_ID: > + /* FIXME: These two values are actually supposed to be different. The > + * one used for gl_BaseVertex is supposed to be zero when a non-indexed > + * draw call is used. > + */ > return TGSI_SEMANTIC_BASEVERTEX; > case SYSTEM_VALUE_BASE_INSTANCE: > return TGSI_SEMANTIC_BASEINSTANCE; >
I don't think altering TGSI should be necessary. Drivers using TGSI aren't using the NIR-based gl_VertexID lowering - they're using the old GLSL IR based path, which for better or worse continues using the old SYSTEM_VALUE_BASEVERTEX path. So, nothing should break here. (It may have already been broken, but we're not making it worse.) --Ken
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
