Skip to main content
A pipeline stage: a Shader, or WebGPU-style { module = Shader, entryPoint = name }. The Shader’s @vertex/@fragment functions are the selectable entry points; omit entryPoint to use the first one of that stage (like WebGPU). Vertex and fragment may come from different Shaders. Each file’s bindings are numbered on its own, so on Vulkan, D3D12 and GL — which share one slot namespace between the stages — two files that declare different bindings can collide; GPUPipeline.new rejects that case naming both bindings. Declaring the same bindings in both files always works.