mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 11:08:03 +02:00
zink: unify actual map calls in buffer mapping
make this a bit easier to debug by moving the calls to one place
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17095>
(cherry picked from commit 2645430b06)
This commit is contained in:
parent
689cad731d
commit
c92f4bfffd
2 changed files with 5 additions and 6 deletions
|
|
@ -112,7 +112,7 @@
|
|||
"description": "zink: unify actual map calls in buffer mapping",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1572,6 +1572,7 @@ zink_buffer_map(struct pipe_context *pctx,
|
|||
}
|
||||
}
|
||||
|
||||
unsigned map_offset = box->x;
|
||||
if (usage & PIPE_MAP_DISCARD_RANGE &&
|
||||
(!res->obj->host_visible ||
|
||||
!(usage & (PIPE_MAP_UNSYNCHRONIZED | PIPE_MAP_PERSISTENT)))) {
|
||||
|
|
@ -1623,8 +1624,7 @@ zink_buffer_map(struct pipe_context *pctx,
|
|||
zink_copy_buffer(ctx, staging_res, res, trans->offset, box->x, box->width);
|
||||
res = staging_res;
|
||||
usage &= ~PIPE_MAP_UNSYNCHRONIZED;
|
||||
ptr = map_resource(screen, res);
|
||||
ptr = ((uint8_t *)ptr) + trans->offset;
|
||||
map_offset = trans->offset;
|
||||
}
|
||||
} else if ((usage & PIPE_MAP_UNSYNCHRONIZED) && !res->obj->host_visible) {
|
||||
trans->offset = box->x % screen->info.props.limits.minMemoryMapAlignment;
|
||||
|
|
@ -1633,8 +1633,7 @@ zink_buffer_map(struct pipe_context *pctx,
|
|||
goto fail;
|
||||
struct zink_resource *staging_res = zink_resource(trans->staging_res);
|
||||
res = staging_res;
|
||||
ptr = map_resource(screen, res);
|
||||
ptr = ((uint8_t *)ptr) + trans->offset;
|
||||
map_offset = trans->offset;
|
||||
}
|
||||
|
||||
if (!(usage & PIPE_MAP_UNSYNCHRONIZED)) {
|
||||
|
|
@ -1656,7 +1655,7 @@ zink_buffer_map(struct pipe_context *pctx,
|
|||
ptr = map_resource(screen, res);
|
||||
if (!ptr)
|
||||
goto fail;
|
||||
ptr = ((uint8_t *)ptr) + box->x;
|
||||
ptr = ((uint8_t *)ptr) + map_offset;
|
||||
}
|
||||
|
||||
if (!res->obj->coherent
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue