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);
-
- map = pb_map(vmw_pb_buffer(buf), flags & PB_USAGE_ALL, NULL);
+ 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), pb_flags, NULL);
#ifdef DEBUG
if (map != NULL)
- debug_flush_map(buf->fbuf, flags);
+ debug_flush_map(buf->fbuf, pb_flags);
#endif
return map;