From 808f6e6095b6d69f2eca0ff6664ef13a6578ceed Mon Sep 17 00:00:00 2001 From: Neha Bhende Date: Fri, 27 Aug 2021 13:04:20 -0700 Subject: [PATCH] svga/drm: use pb_usage_flags instead of pipe_map_flags in vmw_svga_winsys_buffer_map This patch basically maps pipe_map_flags to pb_flags. Since we are mapping it, STATIC_ASSERTS won't be required. Fixes: 00c30dad78b0 ("gallium: renumber PIPE_MAP_* enums to remove holes") Reviewed-by: Charmaine Lee Part-of: (cherry picked from commit 98fded8a393a944c562cf3d9b103c42022cb821b) --- .pick_status.json | 2 +- src/gallium/winsys/svga/drm/vmw_buffer.c | 32 +++++++++++------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 942f02d3125..c023dfce531 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -238,7 +238,7 @@ "description": "svga/drm: use pb_usage_flags instead of pipe_map_flags in vmw_svga_winsys_buffer_map", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "00c30dad78b0eb0a7e45caf38eda4e636a454ff6" }, diff --git a/src/gallium/winsys/svga/drm/vmw_buffer.c b/src/gallium/winsys/svga/drm/vmw_buffer.c index d537c8be96e..6c235a9a486 100644 --- a/src/gallium/winsys/svga/drm/vmw_buffer.c +++ b/src/gallium/winsys/svga/drm/vmw_buffer.c @@ -357,32 +357,30 @@ vmw_svga_winsys_buffer_map(struct svga_winsys_screen *sws, enum pipe_map_flags flags) { void *map; + enum pb_usage_flags pb_flags = 0; (void)sws; if (flags & PIPE_MAP_UNSYNCHRONIZED) flags &= ~PIPE_MAP_DONTBLOCK; - /* NOTE: we're passing PIPE_MAP_x flags instead of - * PB_USAGE_x flags here. We should probably fix that. - */ - STATIC_ASSERT((unsigned) PB_USAGE_CPU_READ == - (unsigned) PIPE_MAP_READ); - STATIC_ASSERT((unsigned) PB_USAGE_CPU_WRITE == - (unsigned) PIPE_MAP_WRITE); - STATIC_ASSERT((unsigned) PB_USAGE_GPU_READ == - (unsigned) PIPE_MAP_DIRECTLY); - STATIC_ASSERT((unsigned) PB_USAGE_DONTBLOCK == - (unsigned) PIPE_MAP_DONTBLOCK); - STATIC_ASSERT((unsigned) PB_USAGE_UNSYNCHRONIZED == - (unsigned) PIPE_MAP_UNSYNCHRONIZED); - STATIC_ASSERT((unsigned) PB_USAGE_PERSISTENT == - (unsigned) PIPE_MAP_PERSISTENT); + if (flags & PIPE_MAP_READ) + pb_flags |= PB_USAGE_CPU_READ; + if (flags & PIPE_MAP_WRITE) + pb_flags |= PB_USAGE_CPU_WRITE; + if (flags & PIPE_MAP_DIRECTLY) + pb_flags |= PB_USAGE_GPU_READ; + if (flags & PIPE_MAP_DONTBLOCK) + pb_flags |= PB_USAGE_DONTBLOCK; + if (flags & PIPE_MAP_UNSYNCHRONIZED) + pb_flags |= PB_USAGE_UNSYNCHRONIZED; + if (flags & PIPE_MAP_PERSISTENT) + pb_flags |= PB_USAGE_PERSISTENT; - map = pb_map(vmw_pb_buffer(buf), flags & PB_USAGE_ALL, NULL); + map = pb_map(vmw_pb_buffer(buf), pb_flags, NULL); #ifdef DEBUG if (map != NULL) - debug_flush_map(buf->fbuf, flags); + debug_flush_map(buf->fbuf, pb_flags); #endif return map;