r600: update cubearray imagesize calculation

The previous method to calculate imageSize().z was
incorrect for a cubearray view.

This change was tested on palm and cayman. Here is the test fixed:
spec/arb_texture_view/rendering-layers-image/layers rendering of imagecubearray: fail pass

Fixes: 6c1432f0be ("r600/eg: fix cube map array buffer images.")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit 0b8d8f2b17)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39745>
This commit is contained in:
Patrick Lerda 2025-12-22 12:51:04 +01:00 committed by Dylan Baker
parent a94e3ad608
commit a808fd5078
3 changed files with 3 additions and 4 deletions

View file

@ -1444,7 +1444,7 @@
"description": "r600: update cubearray imagesize calculation",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "6c1432f0be9c7772573bb86b997c9f085d16c204",
"notes": null

View file

@ -1057,8 +1057,6 @@ spec@arb_texture_stencil8@texwrap formats,Fail
spec@arb_texture_stencil8@texwrap formats offset,Fail
spec@arb_texture_stencil8@texwrap formats offset@GL_STENCIL_INDEX8- NPOT,Fail
spec@arb_texture_stencil8@texwrap formats@GL_STENCIL_INDEX8- NPOT,Fail
spec@arb_texture_view@rendering-layers-image,Fail
spec@arb_texture_view@rendering-layers-image@layers rendering of imageCubeArray,Fail
spec@arb_vertex_type_2_10_10_10_rev@arb_vertex_type_2_10_10_10_rev-array_types,Fail

View file

@ -1525,7 +1525,8 @@ void eg_setup_buffer_constants(struct r600_context *rctx, int shader_type)
int idx = i - sview_bits;
if (images->enabled_mask & (1 << idx)) {
uint32_t offset = (base_offset / 4) + i;
constants[offset] = images->views[idx].base.resource->array_size / 6;
constants[offset] = (G_038014_LAST_ARRAY(images->views[idx].resource_words[5]) -
G_038014_BASE_ARRAY(images->views[idx].resource_words[5]) + 1) / 6;
}
}
}