From: Marek Olšák <marek.ol...@amd.com> Some fields shouldn't be initialized, like framebuffers_bound and other stats. It's hopefully complete now.
Cc: 18.1 <mesa-sta...@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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev