freedreno: correct resource usage check
Usage is not a bitmask. This was causing us to not pick cached-coherent for staging read buffers (ie. clEnqueueReadBuffer() and friends). Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35371>
This commit is contained in:
@@ -190,9 +190,9 @@ realloc_bo(struct fd_resource *rsc, uint32_t size)
|
||||
struct pipe_resource *prsc = &rsc->b.b;
|
||||
struct fd_screen *screen = fd_screen(rsc->b.b.screen);
|
||||
uint32_t flags =
|
||||
(prsc->target == PIPE_BUFFER) ? FD_BO_HINT_BUFFER : FD_BO_HINT_IMAGE |
|
||||
((prsc->target == PIPE_BUFFER) ? FD_BO_HINT_BUFFER : FD_BO_HINT_IMAGE) |
|
||||
COND(rsc->layout.tile_mode, FD_BO_NOMAP) |
|
||||
COND((prsc->usage & PIPE_USAGE_STAGING) &&
|
||||
COND((prsc->usage == PIPE_USAGE_STAGING) &&
|
||||
(prsc->flags & PIPE_RESOURCE_FLAG_MAP_COHERENT),
|
||||
FD_BO_CACHED_COHERENT) |
|
||||
COND(prsc->bind & PIPE_BIND_SHARED, FD_BO_SHARED) |
|
||||
|
||||
Reference in New Issue
Block a user