gallium: Add UNSYNCHRONIZED cpu access flag. Document others.

This commit is contained in:
José Fonseca
2009-11-06 12:04:20 +00:00
parent 25728860fc
commit 244591ae7b
+57 -2
View File
@@ -225,9 +225,10 @@ enum pipe_transfer_usage {
};
/**
/*
* Buffer usage flags
*/
#define PIPE_BUFFER_USAGE_CPU_READ (1 << 0)
#define PIPE_BUFFER_USAGE_CPU_WRITE (1 << 1)
#define PIPE_BUFFER_USAGE_GPU_READ (1 << 2)
@@ -236,9 +237,63 @@ enum pipe_transfer_usage {
#define PIPE_BUFFER_USAGE_VERTEX (1 << 5)
#define PIPE_BUFFER_USAGE_INDEX (1 << 6)
#define PIPE_BUFFER_USAGE_CONSTANT (1 << 7)
/*
* CPU access flags.
*
* These flags should only be used for texture transfers or when mapping
* buffers.
*
* Note that the PIPE_BUFFER_USAGE_CPU_xxx flags above are also used for
* mapping. Either PIPE_BUFFER_USAGE_CPU_READ or PIPE_BUFFER_USAGE_CPU_WRITE
* must be set.
*/
/**
* Discards the memory within the mapped region.
*
* It should not be used with PIPE_BUFFER_USAGE_CPU_READ.
*
* See also:
* - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_RANGE_BIT flag.
* - Direct3D's D3DLOCK_DISCARD flag.
*/
#define PIPE_BUFFER_USAGE_DISCARD (1 << 8)
/**
* Fail if the resource cannot be mapped immediately.
*
* See also:
* - Direct3D's D3DLOCK_DONOTWAIT flag.
* - Mesa3D's MESA_MAP_NOWAIT_BIT flag.
* - WDDM's D3DDDICB_LOCKFLAGS.DonotWait flag.
*/
#define PIPE_BUFFER_USAGE_DONTBLOCK (1 << 9)
#define PIPE_BUFFER_USAGE_FLUSH_EXPLICIT (1 << 10) /**< See pipe_screen::buffer_flush_mapped_range */
/**
* Do not attempt to synchronize pending operations on the resource when mapping.
*
* It should not be used with PIPE_BUFFER_USAGE_CPU_READ.
*
* See also:
* - OpenGL's ARB_map_buffer_range extension, MAP_UNSYNCHRONIZED_BIT flag.
* - Direct3D's D3DLOCK_NOOVERWRITE flag.
* - WDDM's D3DDDICB_LOCKFLAGS.IgnoreSync flag.
*/
#define PIPE_BUFFER_USAGE_UNSYNCHRONIZED (1 << 10)
/**
* Written ranges will be notified later with
* pipe_screen::buffer_flush_mapped_range.
*
* It should not be used with PIPE_BUFFER_USAGE_CPU_READ.
*
* See also:
* - pipe_screen::buffer_flush_mapped_range
* - OpenGL's ARB_map_buffer_range extension, MAP_FLUSH_EXPLICIT_BIT flag.
*/
#define PIPE_BUFFER_USAGE_FLUSH_EXPLICIT (1 << 11)
/** Pipe driver custom usage flags should be greater or equal to this value */
#define PIPE_BUFFER_USAGE_CUSTOM (1 << 16)