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

Dylan Baker dylan at pnwbakers.com
Tue Jun 26 18:14:09 UTC 2018


Quoting Marek Olšák (2018-06-26 09:31:40)
> 
> 
> 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

Okay, sounds good.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180626/1c3ccc8d/attachment-0001.sig>


More information about the mesa-dev mailing list