Skip to main content

Shader

Asset ID:shader

A GPU shader

Asset schema properties

uuid

uuid

Unique identifier for the asset

name

string

Name of the asset

blendMode

0invalid1opaque2alpha_blended3masked

Default:0(invalid)

The blend mode for the shader, used for batching purposes. Only valid for material shaders

computeSettings

object

{

sizeReference,

workgroupSize,

workloadScalingFactor,

}

Compute shader settings. Only valid for compute shaders

constantDescriptor

array[object]

Data descriptor for specialization constants

Specialization constant descriptor

Description of a specialization constant

name

string

Constant name

default

numberstringbooleanarray[number]

Constant default value

description

string

Description

displayName

string

Display name

type

Constant type

materialDescriptor

array[object]

Data descriptor for material shaders

Parameter descriptor

Parameter description

name

string

Parameter name

bufferProperties

object

{

elementCount,

elementSize,

usage,

}

Additional properties for a parameter of type "buffer": how many elements it holds, the size of each element, and how the buffer is used. Absent for every other parameter type

categories

array[string]

Categories

default

numberstringbooleanarray[number]

Parameter default value

isReferenceResource

boolean

Default:false

Whether this parameter (a render target or buffer) is the resource used to compute the number of dispatched workgroups for a compute shader, i.e. DispatchedGroups = referenceResource.size / workgroupSize (see compute_shader_size_reference's reference_resource)

nativeType

Parameter native type

type

Parameter type

moduleDescriptions

array[object]

Descriptions of all modules that compose this shader

Shader module description

Description of a shader module

bindings

array[string]

Names of the bindings used by this module

constants

object

Constants used by this module

entryPoint

string

Default:"main"

Entry point of the shader module

outputs

array[object]

Outputs of this shader module (e.g. a fragment shader's color attachments, or the last stage's varying outputs), used to validate the module's compatibility with a render pipeline

Shader module output descriptor

Description of a shader stage output variable (e.g. a fragment shader's color attachment output, or the last stage's varying output)

name

string

Output variable name

location

uint32

Output location

type

Output variable type

payloadOffset

uint32

Offset in byte in the shader payload buffer

payloadSize

uint32

Size in byte of the compiled module

pushConstants

array[object]

Push constant members used by this module, used to validate push constant layout compatibility across the pipeline's stages

Shader module push constant descriptor

Description of a push constant member used by this module

name

string

Push constant member name

offset

uint32

Offset in byte within the push constant block

size

uint32

Size in byte of the push constant member

type

Push constant member type

shaderStage

integer

The shader stage

usedBindings

uint64

Bindings used by this module

nodeDataDescriptor

array[object]

Data descriptor for render graph node shaders

Parameter descriptor

Parameter description

name

string

Parameter name

bufferProperties

object

{

elementCount,

elementSize,

usage,

}

Additional properties for a parameter of type "buffer": how many elements it holds, the size of each element, and how the buffer is used. Absent for every other parameter type

categories

array[string]

Categories

default

numberstringbooleanarray[number]

Parameter default value

isReferenceResource

boolean

Default:false

Whether this parameter (a render target or buffer) is the resource used to compute the number of dispatched workgroups for a compute shader, i.e. DispatchedGroups = referenceResource.size / workgroupSize (see compute_shader_size_reference's reference_resource)

nativeType

Parameter native type

type

Parameter type

nodeDataDescriptorHash

uint32

Hash of the node data descriptor, used to detect changes in the descriptor

payloadSize

uint32

The size in byte of the compiled shader code (accumulated size of all modules)

shaderStages

uint32

Vulkan bit mask of all shader stages present in this shader

vertexDescriptor

array[object]

Vertex description. Only valid when a vertex shader module is present

Vertex attribute descriptor

Description of a vertex attribute

binding

uint32

Binding number

format

integer

Format

location

uint32

Location

offset

uint32

Default:0

Offset

semantic

uint32

1position2normal4tex_coord8skin_bone_ids16skin_weights32custom

Semantic

stride

uint32

Stride between consecutive elements within the buffer