diff options
author | Jason Ekstrand <[email protected]> | 2019-10-30 15:53:11 -0500 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-10-31 21:07:15 +0000 |
commit | c765e2156a8fb52bdcda758e7c2b0cbdc791d1a9 (patch) | |
tree | 0afb67d3d8094afffd7a12be134abd4771e4afab /src/intel | |
parent | df7a730b4f694f6a07e7d6fd673453b8315ae867 (diff) |
anv: Don't claim the null RT as a valid color target
If it's NULL, we can let the compiler go ahead and delete it or flag it
as NULL.
Reviewed-by: Rafael Antognolli <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/vulkan/anv_pipeline.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 1a2eb4599c8..63e6e6e3fea 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -1008,6 +1008,12 @@ anv_pipeline_link_fs(const struct brw_compiler *compiler, if (deleted_output) nir_fixup_deref_modes(stage->nir); + /* Now that we've determined the actual number of render targets, adjust + * the key accordingly. + */ + stage->key.wm.nr_color_regions = num_rts; + stage->key.wm.color_outputs_valid = (1 << num_rts) - 1; + if (num_rts == 0) { /* If we have no render targets, we need a null render target */ rt_bindings[0] = (struct anv_pipeline_binding) { @@ -1018,12 +1024,6 @@ anv_pipeline_link_fs(const struct brw_compiler *compiler, num_rts = 1; } - /* Now that we've determined the actual number of render targets, adjust - * the key accordingly. - */ - stage->key.wm.nr_color_regions = num_rts; - stage->key.wm.color_outputs_valid = (1 << num_rts) - 1; - assert(num_rts <= max_rt); assert(stage->bind_map.surface_count == 0); typed_memcpy(stage->bind_map.surface_to_descriptor, |