22 lines
766 B
Markdown
22 lines
766 B
Markdown
# WGSL Shader Development
|
|
|
|
Reference for WGSL shader development, buffer alignment, uniform struct layout, and shader asset management. Load this skill when working on shader code, graphics pipelines, or buffer alignment issues.
|
|
|
|
## WGSL Uniform Buffer Alignment
|
|
|
|
When creating uniform buffers for WGSL shaders, struct fields must be aligned:
|
|
|
|
| Type | Alignment |
|
|
|------|-----------|
|
|
| `f32` | 4 bytes |
|
|
| `vec2<f32>` | 8 bytes |
|
|
| `vec3<f32>` | 16 bytes (treated as vec4) |
|
|
| `vec4<f32>` | 16 bytes |
|
|
| `mat4x4<f32>` | 16 bytes (64 bytes total) |
|
|
|
|
Use padding fields to match WGSL struct layout exactly. Prefer `vec4` over individual floats to avoid alignment issues.
|
|
|
|
## Shader Organization
|
|
|
|
Shaders live in `src/shaders/` and are embedded via `include_str!()`.
|