radeonsi: assume that a VS without POSITION is LS
authorMarek Olšák <marek.olsak@amd.com>
Mon, 14 Nov 2016 01:03:28 +0000 (02:03 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 21 Nov 2016 20:44:35 +0000 (21:44 +0100)
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_state_shaders.c

index 9e95fea33af5649d9e66afb769c11d1eea6ce8fe..d0869e3d94fd1153295cbb0d9f43218289a5d631 100644 (file)
@@ -1124,6 +1124,13 @@ static void si_parse_next_shader_property(const struct tgsi_shader_info *info,
                case PIPE_SHADER_TESS_EVAL:
                        key->vs.as_ls = 1;
                        break;
+               default:
+                       /* If POSITION isn't written, it can't be a HW VS.
+                        * Assume that it's a HW LS. (the next shader is TCS)
+                        * This heuristic is needed for separate shader objects.
+                        */
+                       if (!info->writes_position)
+                               key->as_ls = 1;
                }
                break;