summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/radeonsi
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2021-02-19 03:58:28 +0100
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2021-02-23 13:32:23 +0100
commitd78389ea5fe02f74336fdedcf9f9c1ae786e4ee8 (patch)
tree3369a159e1020a9fd456d34aaa674fd9f71ec72e /src/gallium/drivers/radeonsi
parente59847f67f967eaab98f85f4530bb7b8cfb60ab5 (diff)
amd/common: Add retile map size helper.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9042>
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r--src/gallium/drivers/radeonsi/si_compute_blit.c2
-rw-r--r--src/gallium/drivers/radeonsi/si_texture.c4
2 files changed, 2 insertions, 4 deletions
diff --git a/src/gallium/drivers/radeonsi/si_compute_blit.c b/src/gallium/drivers/radeonsi/si_compute_blit.c
index dc28f1067ad..16a8aebd06e 100644
--- a/src/gallium/drivers/radeonsi/si_compute_blit.c
+++ b/src/gallium/drivers/radeonsi/si_compute_blit.c
@@ -648,7 +648,7 @@ void si_retile_dcc(struct si_context *sctx, struct si_texture *tex)
img[0].format = use_uint16 ? PIPE_FORMAT_R16G16B16A16_UINT : PIPE_FORMAT_R32G32B32A32_UINT;
img[0].u.buf.offset = 0;
- img[0].u.buf.size = num_elements * (use_uint16 ? 2 : 4);
+ img[0].u.buf.size = ac_surface_get_retile_map_size(&tex->surface);
img[1].format = PIPE_FORMAT_R8_UINT;
img[1].u.buf.offset = tex->surface.dcc_offset;
diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c
index 9c8c1bc4b2a..d08957ddcc6 100644
--- a/src/gallium/drivers/radeonsi/si_texture.c
+++ b/src/gallium/drivers/radeonsi/si_texture.c
@@ -1077,9 +1077,7 @@ static struct si_texture *si_texture_create_object(struct pipe_screen *screen,
* Use a staging buffer for the upload, because
* the buffer backing the texture is unmappable.
*/
- bool use_uint16 = tex->surface.u.gfx9.dcc_retile_use_uint16;
- unsigned num_elements = tex->surface.u.gfx9.dcc_retile_num_elements;
- unsigned dcc_retile_map_size = num_elements * (use_uint16 ? 2 : 4);
+ uint32_t dcc_retile_map_size = ac_surface_get_retile_map_size(&tex->surface);
tex->dcc_retile_buffer = si_aligned_buffer_create(screen,
SI_RESOURCE_FLAG_DRIVER_INTERNAL, PIPE_USAGE_DEFAULT,