From: Marek Olšák Date: Fri, 22 Jun 2018 04:00:11 +0000 (-0400) Subject: radeonsi: properly set cmask_buffer in si_reallocate_texture_inplace X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eabeeb86b272ff010a9fffcbf48ecf76d44c74cb;p=mesa.git radeonsi: properly set cmask_buffer in si_reallocate_texture_inplace Reviewed-by: Timothy Arceri --- diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c index a577778a9f1..ac50103a74b 100644 --- a/src/gallium/drivers/radeonsi/si_texture.c +++ b/src/gallium/drivers/radeonsi/si_texture.c @@ -574,7 +574,17 @@ static void si_reallocate_texture_inplace(struct si_context *sctx, tex->fmask_offset = new_tex->fmask_offset; tex->cmask_offset = new_tex->cmask_offset; tex->cmask_base_address_reg = new_tex->cmask_base_address_reg; - r600_resource_reference(&tex->cmask_buffer, new_tex->cmask_buffer); + + if (tex->cmask_buffer == &tex->buffer) + tex->cmask_buffer = NULL; + else + r600_resource_reference(&tex->cmask_buffer, NULL); + + if (new_tex->cmask_buffer == &new_tex->buffer) + tex->cmask_buffer = &tex->buffer; + else + r600_resource_reference(&tex->cmask_buffer, new_tex->cmask_buffer); + tex->dcc_offset = new_tex->dcc_offset; tex->cb_color_info = new_tex->cb_color_info; memcpy(tex->color_clear_value, new_tex->color_clear_value,