summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_pipeline.c
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2018-06-27 18:30:09 -0700
committerJason Ekstrand <[email protected]>2018-08-01 18:02:28 -0700
commit80bc0b728c195517fd40027bd3c63f2483811b9f (patch)
tree0452d81257761284fb1bbbbd5c72e42cc836818b /src/intel/vulkan/anv_pipeline.c
parent4d57e543b8e3bc0c5e0e6ced1f0d171a2cab3b8c (diff)
anv: Restrict the number of color regions to those actually written
The back-end compiler emits the number of color writes specified by wm_prog_key::nr_color_regions regardless of what nir_store_outputs we have. Once we've gone through and figured out which render targets actually exist and are written by the shader, we should restrict the key to avoid extra RT write messages. Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/intel/vulkan/anv_pipeline.c')
-rw-r--r--src/intel/vulkan/anv_pipeline.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index e2116e24807..914e5132763 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -963,6 +963,11 @@ anv_pipeline_compile_fs(struct anv_pipeline *pipeline,
num_rts = 1;
}
+ /* Now that we've determined the actual number of render targets, adjust
+ * the key accordingly.
+ */
+ key.nr_color_regions = num_rts;
+
assert(num_rts <= max_rt);
map.surface_to_descriptor -= num_rts;
map.surface_count += num_rts;