summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2018-08-07 16:21:13 -0700
committerJason Ekstrand <[email protected]>2018-08-17 10:50:28 -0500
commitf210a5f4bb868ad5ae70c5fb3912f3a241305666 (patch)
treea33f8138b206a03d01e76da6c8f71da03fff1aa8
parent2e4094cd8f7c05a2949add549f80465853b98c81 (diff)
anv/pipeline: Set tess IO read/written key fields in compile_*
We want these to be set as close to the final compile as possible so that they are guaranteed to happen after nir_shader_gather_info is called. The next commit is going to move nir_shader_gather_info to after the linking step which makes this necessary. Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r--src/intel/vulkan/anv_pipeline.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 9addce55f0c..ef1a80d2024 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -644,19 +644,10 @@ anv_pipeline_link_tcs(const struct brw_compiler *compiler,
*/
tcs_stage->key.tcs.tes_primitive_mode =
tes_stage->nir->info.tess.primitive_mode;
- tcs_stage->key.tcs.outputs_written =
- tcs_stage->nir->info.outputs_written;
- tcs_stage->key.tcs.patch_outputs_written =
- tcs_stage->nir->info.patch_outputs_written;
tcs_stage->key.tcs.quads_workaround =
compiler->devinfo->gen < 9 &&
tes_stage->nir->info.tess.primitive_mode == 7 /* GL_QUADS */ &&
tes_stage->nir->info.tess.spacing == TESS_SPACING_EQUAL;
-
- tes_stage->key.tes.inputs_read =
- tcs_stage->nir->info.outputs_written;
- tes_stage->key.tes.patch_inputs_read =
- tcs_stage->nir->info.patch_outputs_written;
}
static const unsigned *
@@ -665,6 +656,11 @@ anv_pipeline_compile_tcs(const struct brw_compiler *compiler,
struct anv_pipeline_stage *tcs_stage,
struct anv_pipeline_stage *prev_stage)
{
+ tcs_stage->key.tcs.outputs_written =
+ tcs_stage->nir->info.outputs_written;
+ tcs_stage->key.tcs.patch_outputs_written =
+ tcs_stage->nir->info.patch_outputs_written;
+
return brw_compile_tcs(compiler, NULL, mem_ctx, &tcs_stage->key.tcs,
&tcs_stage->prog_data.tcs, tcs_stage->nir,
-1, NULL);
@@ -687,6 +683,11 @@ anv_pipeline_compile_tes(const struct brw_compiler *compiler,
struct anv_pipeline_stage *tes_stage,
struct anv_pipeline_stage *tcs_stage)
{
+ tes_stage->key.tes.inputs_read =
+ tcs_stage->nir->info.outputs_written;
+ tes_stage->key.tes.patch_inputs_read =
+ tcs_stage->nir->info.patch_outputs_written;
+
return brw_compile_tes(compiler, NULL, mem_ctx, &tes_stage->key.tes,
&tcs_stage->prog_data.tcs.base.vue_map,
&tes_stage->prog_data.tes, tes_stage->nir,