panfrost: Respect buffer_offset when mapping to CPU
Previously not seen since mesa/st seems to leave this zero for uniforms. Still wrong, though. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8973>
This commit is contained in:
parent
21c3e82495
commit
0dc539a872
|
@ -965,14 +965,14 @@ panfrost_map_constant_buffer_cpu(struct panfrost_context *ctx,
|
||||||
struct pipe_constant_buffer *cb = &buf->cb[index];
|
struct pipe_constant_buffer *cb = &buf->cb[index];
|
||||||
struct panfrost_resource *rsrc = pan_resource(cb->buffer);
|
struct panfrost_resource *rsrc = pan_resource(cb->buffer);
|
||||||
|
|
||||||
if (rsrc)
|
if (rsrc) {
|
||||||
return rsrc->bo->ptr.cpu;
|
|
||||||
else if (cb->user_buffer) {
|
|
||||||
panfrost_bo_mmap(rsrc->bo);
|
panfrost_bo_mmap(rsrc->bo);
|
||||||
panfrost_flush_batches_accessing_bo(ctx, rsrc->bo, false);
|
panfrost_flush_batches_accessing_bo(ctx, rsrc->bo, false);
|
||||||
panfrost_bo_wait(rsrc->bo, INT64_MAX, false);
|
panfrost_bo_wait(rsrc->bo, INT64_MAX, false);
|
||||||
|
|
||||||
return cb->user_buffer;
|
return rsrc->bo->ptr.cpu + cb->buffer_offset;
|
||||||
|
} else if (cb->user_buffer) {
|
||||||
|
return cb->user_buffer + cb->buffer_offset;
|
||||||
} else
|
} else
|
||||||
unreachable("No constant buffer");
|
unreachable("No constant buffer");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue