HLSL: implement 4 (of 6) structuredbuffer types
This is a partial implemention of structurebuffers supporting: * structured buffer types of: * StructuredBuffer * RWStructuredBuffer * ByteAddressBuffer * RWByteAddressBuffer * Atomic operations on RWByteAddressBuffer * Load/Load[234], Store/Store[234], GetDimensions methods (where allowed by type) * globallycoherent flag But NOT yet supporting: * AppendStructuredBuffer / ConsumeStructuredBuffer types * IncrementCounter/DecrementCounter methods Please note: the stride returned by GetDimensions is as calculated by glslang for std430, and may not match other environments in all cases.
This commit is contained in:
parent
c8aed91524
commit
5da1f038d8
22 changed files with 3993 additions and 37 deletions
|
|
@ -624,6 +624,15 @@ enum TOperator {
|
|||
EOpMethodCalculateLevelOfDetail, // ...
|
||||
EOpMethodCalculateLevelOfDetailUnclamped, // ...
|
||||
|
||||
// Load already defined above for textures
|
||||
EOpMethodLoad2, // Structure buffer object methods. These are translated to existing
|
||||
EOpMethodLoad3, // AST methods, and exist to represent HLSL semantics until that
|
||||
EOpMethodLoad4, // translation is performed. See HlslParseContext::decomposeSampleMethods().
|
||||
EOpMethodStore, // ...
|
||||
EOpMethodStore2, // ...
|
||||
EOpMethodStore3, // ...
|
||||
EOpMethodStore4, // ...
|
||||
|
||||
// SM5 texture methods
|
||||
EOpMethodGatherRed, // These are covered under the above EOpMethodSample comment about
|
||||
EOpMethodGatherGreen, // translation to existing AST opcodes. They exist temporarily
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue