DirectXEffect

Description

abstract class Tinman.Engine.API.DirectXEffect
<TParameters : RenderEffectParameters>
<TBlendState ref>
<TDepthStencilState ref>
<TRasterizerState ref>
<TSamplerState ref>

Derived from

RenderEffectGeneric<TParameters> abstract

Extended by

DirectX11Effect abstract
DirectX12Effect abstract

Abstract base class for IRenderEffect implementations for DirectX 11 or higher.

An implementing class must perform the following steps in its constructor:

If an implementation wants to use low-level parameter slots, the following steps must be performed in the constructor:

When using low-level parameter slots, the following methods are called automatically:

Public / Methods

Blend​State​Apply


public abstract method BlendStateApply → (2)

preset in : RenderStatePreset

The render state preset.

state opt : TBlendState = null

The state description to update or null to use a default one.

returns → TBlendState

state opt

Applies the given render state preset.

Blend​State​Assign

3 overloads


public method BlendStateAssign1 → (2)

state in : RenderStatePreset

The blend state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

returns → int32

The blend state index.

Assigns a blend state to a render effect pass.

RenderException

If a graphics subsystem error has occurred.


public method BlendStateAssign2 → (2)

state in : TBlendState

[not-null]
The blend state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

returns → int32

The blend state index.

Assigns a blend state to a render effect pass.

RenderException

If a graphics subsystem error has occurred.


public method BlendStateAssign3 → (2)

state in : int32

[0..DirectXEffect.BlendStateCount-1]
The blend state index.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

Assigns a blend state to a render effect pass.

Blend​State​Create

2 overloads


public method BlendStateCreate1 → (1)

state in : RenderStatePreset

The blend state

returns → int32

The blend state index.

Creates a blend state.

RenderException

If a graphics subsystem error has occurred.


public method BlendStateCreate2 → (1)

stateDesc in : TBlendState

[not-null]
The blend state

returns → int32

The blend state index.

Creates a blend state.

RenderException

If a graphics subsystem error has occurred.

Constant​Buffer​Assign


public method ConstantBufferAssign → (3)

buffer in : int32

[0..DirectXEffect.ConstantBufferCount-1]
The constant buffer index.

shader in : int32

[0..RenderEffect.ShaderObjectCount-1]
The shader object index.

slot in : int32

[>=0]
The shader slot.

Assigns a constant buffer to a shader slot.

Constant​Buffer​Create


public method ConstantBufferCreate → (1)

size in : int32

[>0]
The buffer size, in bytes.

returns → int32

The constant buffer index.

Creates a constant buffer.

RenderException

If a graphics subsystem error has occurred.

Constant​Buffer​Declare


public method ConstantBufferDeclare → (1)

name in : string

[not-empty]
The constant buffer name.

Declares automatic use of the given constant buffer.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a constant buffer may be declared.

RenderException

If a graphics subsystem error has occurred.

Depth​Stencil​State​Apply


public abstract method DepthStencilStateApply → (2)

preset in : RenderStatePreset

The render state preset.

state opt : TDepthStencilState = null

The state description to update or null to use a default one.

returns → TDepthStencilState

state opt

Applies the given render state preset.

Depth​Stencil​State​Assign

3 overloads


public method DepthStencilStateAssign1 → (2)

state in : RenderStatePreset

The depth/stencil state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

returns → int32

The depth/stencil state index.

Assigns a depth/stencil state to a render effect pass.

RenderException

If a graphics subsystem error has occurred.


public method DepthStencilStateAssign2 → (2)

state in : TDepthStencilState

[not-null]
The depth/stencil state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

returns → int32

The depth/stencil state index.

Assigns a depth/stencil state to a render effect pass.

RenderException

If a graphics subsystem error has occurred.


public method DepthStencilStateAssign3 → (2)

state in : int32

[0..DirectXEffect.DepthStencilStateCount-1]
The depth/stencil state index.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

Assigns a depth/stencil state to a render effect pass.

Depth​Stencil​State​Create

2 overloads


public method DepthStencilStateCreate1 → (1)

state in : RenderStatePreset

The depth/stencil state.

returns → int32

The depth/stencil state index.

Creates a depth/stencil state.

RenderException

If a graphics subsystem error has occurred.


public method DepthStencilStateCreate2 → (1)

stateDesc in : TDepthStencilState

[not-null]
The depth/stencil state.

returns → int32

The depth/stencil state index.

Creates a depth/stencil state.

RenderException

If a graphics subsystem error has occurred.

Pass​State


public method PassState → (7)

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

stencilRef opt : int32 = 0

The stencil reference value.

sampleMask opt : int32 = ~0

The coverage sample mask.

blendFactorR opt : float32 = 1

The red blend factors.

blendFactorG opt : float32 = 1

The green blend factors.

blendFactorB opt : float32 = 1

The blue blend factors.

blendFactorA opt : float32 = 1

The alpha blend factors.

Assigns render state to a render effect pass.

Rasterizer​State​Apply


public abstract method RasterizerStateApply → (2)

preset in : RenderStatePreset

The render state preset.

state opt : TRasterizerState = null

The state description to update or null to use a default one.

returns → TRasterizerState

state opt

Applies the given render state preset.

Rasterizer​State​Assign

3 overloads


public method RasterizerStateAssign1 → (2)

state in : RenderStatePreset

The rasterizer state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

returns → int32

The rasterizer state index.

Assigns a rasterizer state to a render effect pass.

RenderException

If a graphics subsystem error has occurred.


public method RasterizerStateAssign2 → (2)

state in : TRasterizerState

[not-null]
The rasterizer state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

returns → int32

The rasterizer state index.

Assigns a rasterizer state to a render effect pass.

RenderException

If a graphics subsystem error has occurred.


public method RasterizerStateAssign3 → (2)

state in : int32

[0..DirectXEffect.RasterizerStateCount-1]
The rasterizer state index.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

Assigns a rasterizer state to a render effect pass.

Rasterizer​State​Create

2 overloads


public method RasterizerStateCreate1 → (1)

state in : RenderStatePreset

The rasterizer state.

returns → int32

The rasterizer state index.

Creates a rasterizer state.

RenderException

If a graphics subsystem error has occurred.


public method RasterizerStateCreate2 → (1)

stateDesc in : TRasterizerState

[not-null]
The rasterizer state.

returns → int32

The rasterizer state index.

Creates a rasterizer state.

RenderException

If a graphics subsystem error has occurred.

Render​State​Assign

2 overloads


public method RenderStateAssign1 → (1)

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

Assigns the given common render state preset to the given pass.

This method simply delegates to BlendStateAssign1, DepthStencilStateAssign1 and RasterizerStateAssign1, passing the render state preset obtained from RenderEffectParameters.EffectRenderState.

RenderException

If a graphics subsystem error has occurred.


public method RenderStateAssign2 → (2)

state in : RenderStatePreset

The render state preset state.

pass in : int32

[0..IRenderEffectBase.PassCount-1]
The render effect pass.

Assigns the given render state preset to the given pass.

This method simply delegates to BlendStateAssign1, DepthStencilStateAssign1 and RasterizerStateAssign1.

RenderException

If a graphics subsystem error has occurred.

Sampler​State​Apply


public abstract method SamplerStateApply → (2)

preset in : SamplerStatePreset

The render state preset.

state opt : TSamplerState = null

The state description to update or null to use a default one.

returns → TSamplerState

state opt

Applies the given render state preset.

Sampler​State​Assign

4 overloads


public method SamplerStateAssign1 → (3)

sampler in : int32

[0..DirectXEffect.SamplerStateCount-1]
The sampler state index.

shader in : int32

[0..RenderEffect.ShaderObjectCount-1]
The shader object index.

slot in : int32

[>=0]
The shader slot.

Assigns the given sampler state to a shader slot.


public method SamplerStateAssign2 → (2)

sampler in : SamplerStatePreset

The sampler state.

name in : string

[not-empty]
The sampler state name.

returns → int32

The sampler state index.

Declares automatic use of the given sampler state.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a sampler state may be declared.

RenderException

If a graphics subsystem error has occurred.


public method SamplerStateAssign3 → (3)

sampler in : TSamplerState

[not-null]
The sampler state.

name in : string

[not-empty]
The sampler state name.

count opt : int32 = 1

[>=1]
The number of consecutive sampler states.

returns → int32

The sampler state index.

Declares automatic use of the given sampler state.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a sampler state may be declared.

RenderException

If a graphics subsystem error has occurred.


public method SamplerStateAssign4 → (2)

sampler in : int32

[0..DirectXEffect.SamplerStateCount-1]
The sampler state index.

name in : string

[not-empty]
The sampler state name.

Declares automatic use of the given sampler state.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a sampler state may be declared.

RenderException

If a graphics subsystem error has occurred.

Sampler​State​Create

2 overloads


public method SamplerStateCreate1 → (1)

state in : SamplerStatePreset

The sampler state.

returns → int32

The sampler state index.

Creates a sampler state.

RenderException

If a graphics subsystem error has occurred.


public method SamplerStateCreate2 → (1)

stateDesc in : TSamplerState

[not-null]
The sampler state.

returns → int32

The sampler state index.

Creates a sampler state.

RenderException

If a graphics subsystem error has occurred.

Shader​Resource​Assign


public method ShaderResourceAssign → (3)

resource in : int32

[0..DirectXEffect.ShaderResourceCount-1]
The shader resource.

shader in : int32

[0..RenderEffect.ShaderObjectCount-1]
The shader object index.

slot in : int32

[>=0]
The shader slot.

Assigns the given shader resource to a slot of the given shader.

RenderException

If a graphics subsystem error has occurred.

Shader​Resource​Create


public method ShaderResourceCreate → ()

returns → int32

The shader resource index.

Creates a new shader resource.

Shader​Resource​Declare


public method ShaderResourceDeclare → (1)

name in : string

[not-empty]
The shader resource name.

Declares automatic use of the given shader resource.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a shader resource may be declared.

RenderException

If a graphics subsystem error has occurred.

Shader​Resource​Declare​With​State

2 overloads


public method ShaderResourceDeclareWithState1 → (2)

name in : string

[not-empty]
The shader resource name.

sampler opt : string = null

The sampler name. If null, name in will be used after adding the "Sampler" suffix.

Declares automatic use of the given shader resource and assigns the common sampler state preset, by delegating to RenderEffectParameters.EffectSamplerState and ShaderResourceDeclareWithState2.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a shader resource may be declared.

RenderException

If a graphics subsystem error has occurred.


public method ShaderResourceDeclareWithState2 → (3)

name in : string

[not-empty]
The shader resource name.

preset in : SamplerStatePreset

The sampler state preset state.

sampler opt : string = null

The sampler name. If null, name in will be used after adding the "Sampler" suffix.

Declares automatic use of the given shader resource and assigns the given sampler state preset, by delegating to ShaderResourceDeclare and SamplerStateAssign2.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before a shader resource may be declared.

RenderException

If a graphics subsystem error has occurred.

Unordered​Access​Resource​Assign


public method UnorderedAccessResourceAssign → (3)

resource in : int32

[0..DirectXEffect.UnorderedAccessResourceCount-1]
The unordered access resource index.

shader in : int32

[0..RenderEffect.ShaderObjectCount-1]
The shader object index.

slot in : int32

[>=0]
The shader slot.

Assigns the given unordered access resource to a slot of the given shader.

Unordered​Access​Resource​Create


public method UnorderedAccessResourceCreate → ()

returns → int32

The unordered access resource index.

Creates a new unordered access resource.

Unordered​Access​Resource​Declare


public method UnorderedAccessResourceDeclare → (1)

name in : string

[not-empty]
The unordered access resource name.

Declares automatic use of the given unordered access resource.

All shader objects must have been created via RenderEffect.ShaderCreate and must have been assigned to passes via RenderEffect.ShaderAssign before an unordered access resource may be declared.

RenderException

If a graphics subsystem error has occurred.

Public / Attributes

Blend​State​Count


public attribute BlendStateCount → (get)

value : int32

[>=0]
The number of blend states.

Returns the number of blend states.

Constant​Buffer​Count


public attribute ConstantBufferCount → (get)

value : int32

[>=0]
The number of constant buffers.

Returns the number of constant buffers.

Depth​Stencil​State​Count


public attribute DepthStencilStateCount → (get)

value : int32

[>=0]
The number of depth/stencil.

Returns the number of depth/stencil states.

Rasterizer​State​Count


public attribute RasterizerStateCount → (get)

value : int32

[>=0]
The number of rasterizer states.

Returns the number of rasterizer states.

Sampler​State​Count


public attribute SamplerStateCount → (get)

value : int32

[>=0]
The number of sampler states.

Returns the number of sampler states.

Shader​Resource​Count


public attribute ShaderResourceCount → (get)

value : int32

[>=0]
The number of shader resources.

Returns the number of shader resources.

Unordered​Access​Resource​Count


public attribute UnorderedAccessResourceCount → (get)

value : int32

[>=0]
The number of unordered access resources.

Returns the number of unordered access resources.

Protected / Constructors

Direct​XEffect


protected constructor DirectXEffect → (3)

parameters in : TParameters

[not-null]
The render effect parameters object.

path in : Path

[not-null]
The shader repository path.

shaderTypeCount in : int32

[>=1]
The number of shader types.

Creates a new instance of DirectXEffect.

Protected / Methods

Clear​Resource​Bindings


protected virtual method ClearResourceBindings → ()

Clears the given binding slots for shader resources and unordered access resources.

The default implementation clears all resource bindings by calling SetShaderResourceBinding and SetUnorderedAccessResourceBinding passing null as the current resource object.

Do​Blend​State​Create


protected abstract method DoBlendStateCreate → (2)

state in : int32

The state index.

stateDesc in : TBlendState

The state description.

Creates a blend state.

RenderException

If a graphics subsystem error has occurred.

Do​Constant​Buffer​Create


protected abstract method DoConstantBufferCreate → (2)

buffer in : int32

The constant buffer index.

sizeAligned in : int32

Aligned size, in bytes.

Creates a constant buffer.

RenderException

If a graphics subsystem error has occurred.

Do​Constant​Buffer​Update


protected abstract method DoConstantBufferUpdate → (2)

buffer in : int32

The constant buffer.

data in : ByteBuffer

The updated constant buffer data.

Updates the given constant buffer.

This method will only be called between paired calls to DoConstantBufferUpdateBegin and DoConstantBufferUpdateEnd.

Do​Constant​Buffer​Update​Begin


[EmptyBody]
protected virtual method DoConstantBufferUpdateBegin → ()

Begins a sequence of constant buffer updates.

Do​Constant​Buffer​Update​End


[EmptyBody]
protected virtual method DoConstantBufferUpdateEnd → ()

Ends the current sequence of constant buffer updates.

Do​Depth​Stencil​State​Create


protected abstract method DoDepthStencilStateCreate → (2)

state in : int32

The state index.

stateDesc in : TDepthStencilState

The state description.

Creates a depth/stencil state.

RenderException

If a graphics subsystem error has occurred.

Do​Rasterizer​State​Create


protected abstract method DoRasterizerStateCreate → (2)

state in : int32

The state index.

stateDesc in : TRasterizerState

The state description.

Creates a rasterizer state.

RenderException

If a graphics subsystem error has occurred.

Do​Sampler​State​Create


protected abstract method DoSamplerStateCreate → (2)

state in : int32

The state index.

stateDesc in : TSamplerState

The state description.

Creates a sampler state.

RenderException

If a graphics subsystem error has occurred.

Do​Shader​Create_​Byte​Code


protected abstract method DoShaderCreate_ByteCode → (3)

type in : int32

The shader type.

shader in : int32

The shader index.

byteCode in : ByteBuffer

The shader bytecode.

Consumes the shader bytecode.

RenderException

If a graphics subsystem error has occurred.

Do​Shader​Create_​Info


protected abstract method DoShaderCreate_Info → (1)

binary in : Path

Path to the shader binary.

returns → DirectXShaderInfo

The shader information.

Reads shader information for the given shader binary.

IOException

If an I/O error has occurred.

ValidatingException

If the shader metadata has an invalid format.

Pass​Create​With​State


protected method PassCreateWithState → (1)

pass in : int32

[>=0]
The render effect pass index.

Creates a render effect pass and applies its common render state preset.

This method simply delegates to RenderEffect.PassCreate and RenderStateAssign1.

RenderException

If a graphics subsystem error has occurred.

Set​Constant​Buffer


protected abstract method SetConstantBuffer → (3)

type in : int32

The shader type.

slot in : int32

The shader binding slot.

buffer in : int32

The buffer.

Assigns the given constant buffer to the specified shader slot.

Set​Parameters


protected virtual method SetParameters → (1)

forceShaderResources in : bool

Force setting of all shader resource parameters via SetResource(…​), regardless of their changed state?

Applies the current values of all changed effect parameters (see RenderEffectParameters.Changed2).

Set​Pipeline​State


protected abstract method SetPipelineState → (1)

pass in : int32

The pass for which to set the pipeline state or -1 to clear the state.

Sets the graphics pipeline state.

Set​Sampler​State


protected abstract method SetSamplerState → (3)

type in : int32

The shader type.

slot in : int32

The shader binding slot.

sampler in : int32

The sampler state.

Assigns the given sample state to the specified shader slot.

Set​Shader​Resource

3 overloads


protected abstract method SetShaderResource1 → (2)

resource in : int32

The shader resource index.

texture in : ITexture2D

The shader resource to set or null to clear.

Sets a shader resource.


protected abstract method SetShaderResource2 → (2)

resource in : int32

The shader resource index.

buffer in : IGpuBuffer

The shader resource to set or null to clear.

Sets a shader resource.


protected abstract method SetShaderResource3 → (2)

resource in : int32

The shader resource index.

texture in : ITextureCube

The shader resource to set or null to clear.

Sets a shader resource.

Set​Shader​Resource​Binding


protected method SetShaderResourceBinding → (2)

resource in : int32

The shader resource index.

resourceObject in : IResource

The resource object.

Derived classes may call this method generate IResource.Binding2 calls.

Set​Shader​Resource​Null


protected abstract method SetShaderResourceNull → (1)

resource in : int32

The shader resource index.

Sets a shader resource to null.

Set​Unordered​Access​Resource

2 overloads


protected abstract method SetUnorderedAccessResource1 → (2)

resource in : int32

The unordered access resource index.

buffer in : IGpuBuffer

The unordered access resource to set or null to clear.

Sets the given buffer as an unordered access resource.


protected abstract method SetUnorderedAccessResource2 → (3)

resource in : int32

The unordered access resource index.

texture in : ITexture2D

The unordered access resource to set or null to clear.

mipmap in : int32

The texture mipmap level to set. If the mipmap level is out of range, the resource will be set to null.

Sets the given texture as an unordered access resource.

Set​Unordered​Access​Resource​Binding


protected method SetUnorderedAccessResourceBinding → (2)

resource in : int32

The unordered access resource index.

resourceObject in : IResource

The resource object.

Derived classes may call this method generate IResource.Binding2 calls.

Set​Unordered​Access​Resource​Null


protected abstract method SetUnorderedAccessResourceNull → (1)

resource in : int32

The unordered access resource index.

Sets an unordered access resource to null.

Set​Value


protected method SetValue → (3)

buffer in : int32

[0..DirectXEffect.ConstantBufferCount-1]
The constant buffer index.

offset in : int32

[>=0]
The byte offset.

length in : int32

[>0]
The byte count of the value to set.

returns → ByteBuffer

The byte buffer to use for writing the value.

Sets a value in a constant buffer.

Shader​Resource​Index


protected method ShaderResourceIndex → (2)

slot in : int32

The parameter slot.

element in : int32

The parameter element.

returns → int32

The resource index of -1.

Returns the resource index for the given parameter slot element.

Shader​Resource​Slot


protected method ShaderResourceSlot → (2)

resource in : int32

[0..DirectXEffect.ShaderResourceCount-1]
The shader resource.

shaderType in : int32

[0..RenderEffect.ShaderTypeCount-1]
The shader type.

returns → int32

The assigned shader slot or -1 if none.

Returns the assigned shader slot of the given resource.

Unordered​Access​Index


protected method UnorderedAccessIndex → (2)

slot in : int32

The parameter slot.

element in : int32

The parameter element.

returns → int32

The resource index of -1.

Returns the resource index for the given parameter slot element.

Unordered​Access​Slot


protected method UnorderedAccessSlot → (2)

resource in : int32

[0..DirectXEffect.UnorderedAccessResourceCount-1]
The shader resource.

shaderType in : int32

[0..RenderEffect.ShaderTypeCount-1]
The shader type.

returns → int32

The assigned shader slot or -1 if none.

Returns the assigned shader slot of the given resource.

Protected / Attributes

blend​State​Mapping


protected attribute blendStateMapping → (Mapping1D<int32>)

Pass mapping for blend states:

first  := pass
second := blend-state

constant​Buffer​Mapping


protected attribute constantBufferMapping → (Mapping2D<int32>)

Shader slot mapping for constant buffers:

firstX := shader-object
firstY := shader-slot
second := constant-buffer

depth​Stencil​State​Mapping


protected attribute depthStencilStateMapping → (Mapping1D<int32>)

Pass mapping for depth/stencil states.

pass​Blend​Factors


protected attribute passBlendFactors → (Mapping1D<Vec4F>)

Mapping from pass index to blend factors:

first    := parameter-slot
second.X := blend-factor for red channel
second.Y := blend-factor for green channel
second.Z := blend-factor for blue channel
second.W := blend-factor for alpha channel

pass​Sample​Mask


protected attribute passSampleMask → (Mapping1D<int32>)

Mapping from pass index to sample mask:

first  := pass
second := sample mask value

pass​Stencil​Ref


protected attribute passStencilRef → (Mapping1D<int32>)

Mapping from pass index to stencil reference value:

first  := pass
second := depth-stencil reference value

rasterizer​State​Mapping


protected attribute rasterizerStateMapping → (Mapping1D<int32>)

Pass mapping for rasterizer states:

first  := pass
second := rasterizer-state

sampler​State​Mapping


protected attribute samplerStateMapping → (Mapping2D<int32>)

Shader slot mapping for sampler states:

firstX := shader-object
firstY := shader-slot
second := sampler-state

shader​Infos


protected attribute shaderInfos → (Mapping1D<DirectXShaderInfo>)

Mapping from shader to shader info:

first  := shader-object
second := shader-info

shader​Resource​Mapping


protected attribute shaderResourceMapping → (Mapping2D<int32>)

Shader slot mapping for shader resources:

firstX := shader-object
firstY := shader-resource
second := shader-slot

shader​Resource​Type


protected attribute shaderResourceType → (Mapping1D<int32>)

Mapping from shader resource to resource type:

first  := shader-resource
second := resource type:
          0 : unknown
          1 : texture 2D
          2 : texture-array 2D
          3 : texture CUBE
          4 : texture-array CUBE
          5 : buffer

shader​Slot​Count


protected attribute shaderSlotCount → (Mapping2D<int32>)

Remembers which shader slots are in use:

firstX := shader-type
firstY := slot-type
          0 : constant-buffer
          1 : sampler-state
          2 : shader-resource
          3 : unordered-access-resource
second := number of used shader slots

unordered​Access​Resource​Mapping


protected attribute unorderedAccessResourceMapping → (Mapping2D<int32>)

Shader slot mapping for unordered access:

firstX := shader-object
firstY := unordered-access-resource
second := shader-slot