[Mesa-dev] [PATCH 07/11] radeonsi: reorder and initialize more fields in si_reallocate_texture_inplace

Marek Olšák maraeo at gmail.com
Tue Jun 26 16:31:40 UTC 2018


On Tue, Jun 26, 2018, 11:57 AM Dylan Baker <dylan at pnwbakers.com> wrote:

> Quoting Marek Olšák (2018-06-18 16:33:08)
> > From: Marek Olšák <marek.olsak at amd.com>
> >
> > Some fields shouldn't be initialized, like framebuffers_bound and other
> stats.
> > It's hopefully complete now.
> >
> > Cc: 18.1 <mesa-stable at lists.freedesktop.org>
> > ---
> >  src/gallium/drivers/radeonsi/si_texture.c | 31 ++++++++++++++++++-----
> >  1 file changed, 25 insertions(+), 6 deletions(-)
> >
> > diff --git a/src/gallium/drivers/radeonsi/si_texture.c
> b/src/gallium/drivers/radeonsi/si_texture.c
> > index 2103134156d..e1afe71a3c7 100644
> > --- a/src/gallium/drivers/radeonsi/si_texture.c
> > +++ b/src/gallium/drivers/radeonsi/si_texture.c
> > @@ -552,36 +552,55 @@ static void si_reallocate_texture_inplace(struct
> si_context *sctx,
> >         /* Replace the structure fields of rtex. */
> >         rtex->buffer.b.b.bind = templ.bind;
> >         pb_reference(&rtex->buffer.buf, new_tex->buffer.buf);
> >         rtex->buffer.gpu_address = new_tex->buffer.gpu_address;
> >         rtex->buffer.vram_usage = new_tex->buffer.vram_usage;
> >         rtex->buffer.gart_usage = new_tex->buffer.gart_usage;
> >         rtex->buffer.bo_size = new_tex->buffer.bo_size;
> >         rtex->buffer.bo_alignment = new_tex->buffer.bo_alignment;
> >         rtex->buffer.domains = new_tex->buffer.domains;
> >         rtex->buffer.flags = new_tex->buffer.flags;
> > -       rtex->size = new_tex->size;
> > -       rtex->db_render_format = new_tex->db_render_format;
> > -       rtex->db_compatible = new_tex->db_compatible;
> > -       rtex->can_sample_z = new_tex->can_sample_z;
> > -       rtex->can_sample_s = new_tex->can_sample_s;
> > +
> >         rtex->surface = new_tex->surface;
> > +       rtex->size = new_tex->size;
> > +       r600_texture_reference(&rtex->flushed_depth_texture,
> > +                              new_tex->flushed_depth_texture);
> > +
> >         rtex->fmask_offset = new_tex->fmask_offset;
> >         rtex->cmask = new_tex->cmask;
> > +       r600_resource_reference(&rtex->cmask_buffer,
> new_tex->cmask_buffer);
> > +       rtex->dcc_offset = new_tex->dcc_offset;
> >         rtex->cb_color_info = new_tex->cb_color_info;
> > +       memcpy(rtex->color_clear_value, new_tex->color_clear_value,
> > +              sizeof(rtex->color_clear_value));
> >         rtex->last_msaa_resolve_target_micro_mode =
> new_tex->last_msaa_resolve_target_micro_mode;
> > +
> >         rtex->htile_offset = new_tex->htile_offset;
> > +       rtex->depth_clear_value = new_tex->depth_clear_value;
> > +       rtex->dirty_level_mask = new_tex->dirty_level_mask;
> > +       rtex->stencil_dirty_level_mask =
> new_tex->stencil_dirty_level_mask;
> > +       rtex->db_render_format = new_tex->db_render_format;
> > +       rtex->stencil_clear_value = new_tex->stencil_clear_value;
> >         rtex->tc_compatible_htile = new_tex->tc_compatible_htile;
> >         rtex->depth_cleared = new_tex->depth_cleared;
> >         rtex->stencil_cleared = new_tex->stencil_cleared;
> > +       rtex->upgraded_depth = new_tex->upgraded_depth;
> > +       rtex->db_compatible = new_tex->db_compatible;
> > +       rtex->can_sample_z = new_tex->can_sample_z;
> > +       rtex->can_sample_s = new_tex->can_sample_s;
> > +
> > +       rtex->separate_dcc_dirty = new_tex->separate_dcc_dirty;
> >         rtex->dcc_gather_statistics = new_tex->dcc_gather_statistics;
> > -       rtex->framebuffers_bound = new_tex->framebuffers_bound;
> > +       r600_resource_reference(&rtex->dcc_separate_buffer,
> > +                               new_tex->dcc_separate_buffer);
> > +       r600_resource_reference(&rtex->last_dcc_separate_buffer,
> > +                               new_tex->last_dcc_separate_buffer);
> >
> >         if (new_bind_flag == PIPE_BIND_LINEAR) {
> >                 assert(!rtex->htile_offset);
> >                 assert(!rtex->cmask.size);
> >                 assert(!rtex->surface.fmask_size);
> >                 assert(!rtex->dcc_offset);
> >                 assert(!rtex->is_depth);
> >         }
> >
> >         r600_texture_reference(&new_tex, NULL);
> > --
> > 2.17.1
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
> Hi Marek,
>
> This doesn't apply cleanly to 18.1. It relies on at least
> 1ba87f4438069964af6548f4fa05386be999f4de, which is massive and also doesn't
> apply cleanly. What would you like to do?
>

Let's ignore this patch.

Thanks,
Marek


> Dylan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180626/0654fb45/attachment-0001.html>


More information about the mesa-dev mailing list