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;