Class GorgonBufferReadWriteView
Provides a read/write (unordered access) view for a GorgonBuffer.
Inheritance
Implements
Inherited Members
Namespace: Gorgon.Graphics.Core
Assembly: Gorgon.Graphics.Core.dll
Syntax
public sealed class GorgonBufferReadWriteView : GorgonBufferReadWriteViewCommon<GorgonBuffer>, IDisposable, IGorgonGraphicsObject, IEquatable<GorgonResourceView>, IGorgonBufferInfo, IGorgonNamedObject
Remarks
This type of view allows for unordered access to a GorgonBuffer. The buffer must have been created with the ReadWrite flag in its Binding property.
The unordered access allows a shader to read/write any part of a GorgonGraphicsResource by multiple threads without memory contention. This is done through the use of atomic functions.
These types of views are most useful for GorgonComputeShader shaders, but can also be used by a GorgonPixelShader by passing a list of these views in to a draw call.
Properties
| Edit this page View SourceAllowCpuRead
Property to set or return whether to allow the CPU read access to the buffer.
Declaration
public bool AllowCpuRead { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
This value indicates whether or not the CPU can directly access the buffer for reading. If this value is false, the buffer still can be read, but will be done through an intermediate staging buffer, which is obviously less performant.
This value is treated as false if the buffer does not have a Binding containing the Shader flag, and does not have a Usage of Default. This means any reads will be done through an intermediate staging buffer, impacting performance.
If the Usage property is set to Staging, then this value is treated as true because staging buffers are CPU only and as such, can be read directly by the CPU regardless of this value.
See Also
| Edit this page View SourceAllowRawView
Property to return whether to allow raw unordered views of the buffer.
Declaration
public bool AllowRawView { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
This value is always false for this type of view.
See Also
| Edit this page View SourceBinding
Property to return the type of binding for the GPU.
Declaration
public BufferBinding Binding { get; }
Property Value
Type | Description |
---|---|
BufferBinding |
See Also
| Edit this page View SourceElementSize
Property to return the size of an element, in bytes.
Declaration
public override int ElementSize { get; }
Property Value
Type | Description |
---|---|
int |
Overrides
See Also
| Edit this page View SourceFormat
Property to return the format used to interpret this view.
Declaration
public BufferFormat Format { get; }
Property Value
Type | Description |
---|---|
BufferFormat |
See Also
| Edit this page View SourceFormatInformation
Property to return information about the Format used by this view.
Declaration
public GorgonFormatInfo FormatInformation { get; }
Property Value
Type | Description |
---|---|
GorgonFormatInfo |
See Also
| Edit this page View SourceIndirectArgs
Property to return whether the buffer will contain indirect argument data.
Declaration
public bool IndirectArgs { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
This flag only applies to buffers with a Binding of ReadWrite, and/or Shader. If the binding is set to anything else, then this flag is treated as being set to false.
The default value is false.