Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / WebGPUShader

Class: WebGPUShader

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

Constructors

Constructor

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

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

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:55


index

index: number = -1

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


quadBindGroup?

optional quadBindGroup: GPUBindGroup

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


vertexInputs

vertexInputs: Map<string, number>

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


vertexInputsMask

vertexInputsMask: number = 0

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


wgslReflects_

wgslReflects_: WgslReflect[]

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

Accessors

pipeLineLayout

Get Signature

get pipeLineLayout(): GPUPipelineLayout

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

Returns

GPUPipelineLayout

Methods

bindResources()

bindResources(groupIndex, data, renderPass?): GPUBindGroup

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

Parameters

groupIndex

number

data

BindDataEntry[]

renderPass?

GPURenderPassEncoder

Returns

GPUBindGroup


checkBindGroupCompatibility()

checkBindGroupCompatibility(index, bindGroupLabel): boolean

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

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:229

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:354

Returns

void


getBindGroupInfo()

getBindGroupInfo(index): string[]

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

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:146

Returns

GPUBindGroupLayoutDescriptor[]


getBindGroupLayouts()

getBindGroupLayouts(): GPUBindGroupLayout[]

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

Returns

GPUBindGroupLayout[]


getBindGroupSimple()

getBindGroupSimple(index): string

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

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:394

Returns

undefined | GPUShaderModule


getComputePipeline()

getComputePipeline(): GPUComputePipeline

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

Returns

GPUComputePipeline


getFragmentModule()

getFragmentModule(): undefined | GPUShaderModule

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

Returns

undefined | GPUShaderModule


getPipeline()

getPipeline(v): GPURenderPipeline

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

Parameters

v

PipelineInfo

Returns

GPURenderPipeline


getPipelineDescriptor()

getPipelineDescriptor(desc): GPURenderPipelineDescriptor

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

Parameters

desc

IPipelineSimpleDescriptor = {}

Returns

GPURenderPipelineDescriptor


getQuadPipeline()

getQuadPipeline(): GPURenderPipeline

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

Returns

GPURenderPipeline


getResourceBindingByName()

getResourceBindingByName(name): undefined | VariableInfo

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

Parameters

name

string

Returns

undefined | VariableInfo


getVertexModule()

getVertexModule(): undefined | GPUShaderModule

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

Returns

undefined | GPUShaderModule


reflectCode()

reflectCode(code): WgslReflect

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

Parameters

code

string

Returns

WgslReflect