nir: Use a system value for gl_PrimitiveIDIn.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 23 Sep 2015 22:40:33 +0000 (15:40 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 29 Sep 2015 21:19:32 +0000 (14:19 -0700)
commit476e6d732f76f1ac1c4560ccade7cbc93f985d09
treea76ae08caf7e20d4bbce5896eb7fa9dbfe768afe
parentcb758b892a7e62ff1f6187f2ca9ac543ff70a096
nir: Use a system value for gl_PrimitiveIDIn.

At least on Intel hardware, gl_PrimitiveIDIn comes in as a special part
of the payload rather than a normal input.  This is typically what we
use system values for.  Dave and Ilia also agree that a system value
would be nicer.

At some point, we should change it at the GLSL IR level as well.  But
that requires changing most of the drivers.  For now, let's at least
make NIR do the right thing, which is easy.

v2: Add a comment about not creating a temporary (suggested by Iago).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/glsl/nir/glsl_to_nir.cpp
src/glsl/nir/nir.c
src/glsl/nir/nir_intrinsics.h
src/glsl/shader_enums.h
src/mesa/drivers/dri/i965/brw_vec4_gs_nir.cpp