[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 15:57:17 UTC 2018
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?
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/fd6ec7ff/attachment.sig>
More information about the mesa-dev
mailing list