diff options
author | Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> | 2021-02-19 03:58:28 +0100 |
---|---|---|
committer | Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> | 2021-02-23 13:32:23 +0100 |
commit | d78389ea5fe02f74336fdedcf9f9c1ae786e4ee8 (patch) | |
tree | 3369a159e1020a9fd456d34aaa674fd9f71ec72e /src/gallium/drivers/radeonsi | |
parent | e59847f67f967eaab98f85f4530bb7b8cfb60ab5 (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.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_texture.c | 4 |
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, |