[Mesa-dev] [PATCH] anv: Restrict the nuber of color regions to those actually written
Caio Marcelo de Oliveira Filho
caio.oliveira at intel.com
Fri Jul 6 01:34:08 UTC 2018
On Wed, Jun 27, 2018 at 07:00:56PM -0700, Jason Ekstrand wrote:
> 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.
> ---
> src/intel/vulkan/anv_pipeline.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
> index 523202cf3d9..6a27d305dbc 100644
> --- a/src/intel/vulkan/anv_pipeline.c
> +++ b/src/intel/vulkan/anv_pipeline.c
> @@ -965,6 +965,11 @@ anv_pipeline_compile_fs(struct anv_pipeline *pipeline,
> var->data.location = rt_to_bindings[rt] + FRAG_RESULT_DATA0;
> }
>
> + /* Now that we've determined the actual number of render targets, adjust
> + * the key accordingly.
> + */
> + key.nr_color_regions = num_rts;
> +
Question: earlier in the code we call
populate_wm_prog_key(pipeline, info, &key);
which does
key->nr_color_regions = pipeline->subpass->color_count;
key->replicate_alpha = key->nr_color_regions > 1 &&
info->pMultisampleState &&
info->pMultisampleState->alphaToCoverageEnable;
so key->replicate_alpha is calculated based on the old value. Should
this be (re)calculated using the new value?
Thanks,
Caio
More information about the mesa-dev
mailing list