gallium: add TGSI property NEXT_SHADER
authorMarek Olšák <marek.olsak@amd.com>
Thu, 10 Mar 2016 12:20:36 +0000 (13:20 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Sat, 19 Mar 2016 22:20:01 +0000 (23:20 +0100)
commitfbe6e92899f90e7ee85420e88c807a1f2fd2be14
treee26372e2b5ff06e17f5308fef405c1829126bcdd
parent9184d9a0bbe8a8b88d676a20f95d66ceee9eaf21
gallium: add TGSI property NEXT_SHADER

Radeonsi needs to know which shader stage will execute after a shader
in order to make the best decision about which shader variant to compile
first.

This is only set for VS and TES, because we don't need it elsewhere.

VS has 3 variants:
- next shader is FS
- next shader is GS
- next shader is TCS

TES has 2 variants:
- next shader is FS
- next shader is GS

Currently, radeonsi always assumes the next shader is FS, which is suboptimal,
since st/mesa always knows which shader is next if the GLSL program is not
a "separate shader".

By default, ureg always sets "next shader is FS".

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/auxiliary/tgsi/tgsi_strings.c
src/gallium/auxiliary/tgsi/tgsi_ureg.c
src/gallium/auxiliary/tgsi/tgsi_ureg.h
src/gallium/docs/source/tgsi.rst
src/gallium/include/pipe/p_shader_tokens.h