Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / WebGPUShader

Class: WebGPUShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:38

Constructors

Constructor

new WebGPUShader(id, backend, vertexSource?, fragmentSource?, computeSource?): WebGPUShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:61

Parameters

id

string

backend

WebGPUBackend

vertexSource?

string

fragmentSource?

string

computeSource?

string

Returns

WebGPUShader

Properties

id

id: string = ""

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:54


index

index: number = -1

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:55


quadBindGroup?

optional quadBindGroup: GPUBindGroup

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:52


vertexInputs

vertexInputs: Map<string, number>

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:57


vertexInputsMask

vertexInputsMask: number = 0

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:58


wgslReflects_

wgslReflects_: WgslReflect[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:53

Accessors

pipeLineLayout

Get Signature

get pipeLineLayout(): GPUPipelineLayout

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:135

Returns

GPUPipelineLayout

Methods

bindResources()

bindResources(groupIndex, data, renderPass?): GPUBindGroup

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:492

Parameters

groupIndex

number

data

BindDataEntry[]

renderPass?

GPURenderPassEncoder

Returns

GPUBindGroup


checkBindGroupCompatibility()

checkBindGroupCompatibility(index, bindGroupLabel): boolean

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:200

If a bind group doesnt match a shader, use this method to compare The bindgroup must be created using the context.createSimpleBindGroup

Parameters

index

number

bindGroupLabel

string

Returns

boolean


createBindGroupLayoutDescriptors()

createBindGroupLayoutDescriptors(): GPUBindGroupLayoutDescriptor[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:226

Extracts groups from the shader code and creates a GPUBindGroupLayoutDescriptor that will be used by the pipeline

Returns

GPUBindGroupLayoutDescriptor[]


extractVertexInputs()

extractVertexInputs(): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:351

Returns

void


getBindGroupInfo()

getBindGroupInfo(index): string[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:149

Returns an array of strings showing every element in the bind group layout Helps debugs missmatch between bindgroup and pipeline layout

Parameters

index

number

Returns

string[]


getBindGroupLayoutDescriptors()

getBindGroupLayoutDescriptors(): GPUBindGroupLayoutDescriptor[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:143

Returns

GPUBindGroupLayoutDescriptor[]


getBindGroupLayouts()

getBindGroupLayouts(): GPUBindGroupLayout[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:139

Returns

GPUBindGroupLayout[]


getBindGroupSimple()

getBindGroupSimple(index): string

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:173

Returns a string with very similar structure as in the context.createSimpleBindGroup. Useful for debugging. It can be used to create bindgroups but you can already do that with bindGroupLayoutDescriptors

Parameters

index

number

Returns

string


getComputeModule()

getComputeModule(): undefined | GPUShaderModule

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:391

Returns

undefined | GPUShaderModule


getComputePipeline()

getComputePipeline(): GPUComputePipeline

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:486

Returns

GPUComputePipeline


getFragmentModule()

getFragmentModule(): undefined | GPUShaderModule

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:387

Returns

undefined | GPUShaderModule


getPipeline()

getPipeline(v): GPURenderPipeline

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:475

Parameters

v

PipelineInfo

Returns

GPURenderPipeline


getPipelineDescriptor()

getPipelineDescriptor(desc): GPURenderPipelineDescriptor

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:421

Parameters

desc

IPipelineSimpleDescriptor = {}

Returns

GPURenderPipelineDescriptor


getQuadPipeline()

getQuadPipeline(): GPURenderPipeline

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:535

Returns

GPURenderPipeline


getResourceBindingByName()

getResourceBindingByName(name): undefined | VariableInfo

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:395

Parameters

name

string

Returns

undefined | VariableInfo


getVertexModule()

getVertexModule(): undefined | GPUShaderModule

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:383

Returns

undefined | GPUShaderModule


reflectCode()

reflectCode(code): WgslReflect

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:340

Parameters

code

string

Returns

WgslReflect