tgsi/scan: fix scanning fragment shaders with PrimID and Position/Face

Not relevant to radeonsi, because Position/Face are system values
with radeonsi, while this codepath is for drivers where Position and
Face are ordinary inputs.

Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Marek Olšák 2017-05-30 02:04:29 +02:00
parent 708664159e
commit 4b1e6ed49a
1 changed files with 10 additions and 7 deletions

View File

@ -557,13 +557,16 @@ scan_declaration(struct tgsi_shader_info *info,
/* Vertex shaders can have inputs with holes between them. */
info->num_inputs = MAX2(info->num_inputs, reg + 1);
if (semName == TGSI_SEMANTIC_PRIMID)
info->uses_primid = TRUE;
else if (procType == PIPE_SHADER_FRAGMENT) {
if (semName == TGSI_SEMANTIC_POSITION)
info->reads_position = TRUE;
else if (semName == TGSI_SEMANTIC_FACE)
info->uses_frontface = TRUE;
switch (semName) {
case TGSI_SEMANTIC_PRIMID:
info->uses_primid = true;
break;
case TGSI_SEMANTIC_POSITION:
info->reads_position = true;
break;
case TGSI_SEMANTIC_FACE:
info->uses_frontface = true;
break;
}
break;