mesa: get correct src address for transferOps

When texstore_rgba() takes the path that doesn't handle
transferOps it was correctly calling _mesa_image_address()
to apply any pixel store unpack setting to the starting src
address. This was missing from the transferOps path so we add it
in this patch.

Fixes: 4b249d2eed ("mesa: Handle transferOps in texstore_rgba")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10314

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35481>
(cherry picked from commit 1f2568ae31)
This commit is contained in:
Timothy Arceri 2025-06-12 10:37:23 +10:00 committed by Eric Engestrom
parent 8b24f5441a
commit f0c5d5f49c
2 changed files with 4 additions and 2 deletions

View file

@ -2484,7 +2484,7 @@
"description": "mesa: get correct src address for transferOps",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "4b249d2eed686384d6d7c36f3232360891d5eeda",
"notes": null

View file

@ -776,7 +776,9 @@ texstore_rgba(TEXSTORE_PARAMS)
}
/* Convert from src to RGBA float */
src = (GLubyte *) srcAddr;
src = (GLubyte *)
_mesa_image_address(dims, srcPacking, srcAddr, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
dst = (GLubyte *) tempRGBA;
for (img = 0; img < srcDepth; img++) {
_mesa_format_convert(dst, RGBA32_FLOAT, 4 * srcWidth * sizeof(float),