[Mesa-dev] [PATCH] anv: Restrict the nuber of color regions to those actually written
jason at jlekstrand.net
Sat Jul 7 16:35:52 UTC 2018
On Thu, Jul 5, 2018 at 6:34 PM Caio Marcelo de Oliveira Filho <
caio.oliveira at intel.com> wrote:
> 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
> > 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
> > var->data.location = rt_to_bindings[rt] + FRAG_RESULT_DATA0;
> > }
> > + /* Now that we've determined the actual number of render targets,
> > + * 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 &&
> so key->replicate_alpha is calculated based on the old value. Should
> this be (re)calculated using the new value?
We could but it would have no effect. 100% of the uses of replicate_alpha
in the back-end have it ANDed with inst->target > 0.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the mesa-dev