Am 08.08.2014 09:37, schrieb Kenneth Graunke: > On Friday, August 08, 2014 12:31:07 AM Kenneth Graunke wrote: >> From: Ian Romanick <ian.d.roman...@intel.com> >> >> This system value represents the basevertex value passed to >> glDrawElementsBaseVertex and related functions. >> >> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> >> --- >> src/mesa/main/mtypes.h | 15 ++++++++++++++- >> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 1 + >> 2 files changed, 15 insertions(+), 1 deletion(-) >> >> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h >> index c603007..99037c6 100644 >> --- a/src/mesa/main/mtypes.h >> +++ b/src/mesa/main/mtypes.h >> @@ -2084,7 +2084,12 @@ typedef enum >> * gl_VertexID gets basevertex added in. This differs from DirectX where >> * SV_VertexID does \b not get basevertex added in. >> * >> - * \sa SYSTEM_VALUE_VERTEX_ID_ZERO_BASE >> + * \note >> + * If all system values are available, \c SYSTEM_VALUE_VERTEX_ID will be >> + * equal to \c SYSTEM_VALUE_VERTEX_ID_ZERO_BASE plus >> + * \c SYSTEM_VALUE_BASE_VERTEX. >> + * >> + * \sa SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, SYSTEM_VALUE_BASE_VERTEX >> */ >> SYSTEM_VALUE_VERTEX_ID, >> >> @@ -2126,6 +2131,14 @@ typedef enum >> * \sa SYSTEM_VALUE_VERTEX_ID, SYSTEM_VALUE_BASE_VERTEX >> */ >> SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, >> + >> + /** >> + * Value of \c basevertex passed to \c glDrawElementsBaseVertex and >> similar >> + * functions. >> + * >> + * \sa SYSTEM_VALUE_VERTEX_ID, SYSTEM_VALUE_VERTEX_ID_ZERO_BASE >> + */ >> + SYSTEM_VALUE_BASE_VERTEX, >> /*@}*/ > > Ian, > > It occurred to me that we're sort of abusing this system value in the i965 > patches later in this series - we're using it to store gl_BaseVertexARB, but > also using it to store the "first" parameter for glDrawArrays. I think in > the glDrawArrays case, gl_BaseVertexARB is supposed to be 0. > > I'm not sure what the right thing to do is. > > --Ken
Hmm are you sure of that? I guess you're drawing that from "<gl_BaseVertexARB> holds the integer value passed to the <baseVertex> parameter to the command that resulted in the current shader invocation. In the case where the command has no <baseVertex> parameter, the value of <gl_BaseVertexARB> is zero." And non-indexed draw commands have no <baseVertex> parameter, they have a "first" parameter instead. Pretty much the same thing however, just a different name. I think it would make way more sense if gl_BaseVertexARB would also account for the first parameter of non-indexed draw, so maybe it's just not cleverly worded. ARB_shader_draw_parameters specifically mentions this stuff is useful for translating from other APIs, and if it doesn't include non-indexed draw's first parameter, it can't do that. So I would suggest the docs should be clarified instead. Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev