r600g: add support for primitive id without geom shader (v2)
authorDave Airlie <airlied@redhat.com>
Tue, 27 Jan 2015 03:39:51 +0000 (13:39 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 27 Jan 2015 23:51:21 +0000 (09:51 +1000)
commit349df23eb0d119e3f22ff6149824497414f07505
tree048b6c2ba1a2cfb032664e2ce2ee61ee6f214000
parentcc2fc095bfae1c0494240e4f06931e2ca90e182c
r600g: add support for primitive id without geom shader (v2)

GLSL 1.50 specifies a fragment shader may have a primitive id
input without a geometry shader present.

On r600 hw there is a special GS scenario for this, you have
to enable GS_SCENARIO_A and pass the primitive id through
the vertex shader which operates in GS_A mode.

This is a first pass attempt at this, and passes the piglit
tests that test for this.

v1.1: clean up debug print + no need to assign
key value to setup output.
v2: add r600 support

Reviewed-by: Glenn Kennard <glenn.kennard@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_shader.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_common.c