typegpu
Version:
A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.
62 lines (61 loc) • 1.11 kB
JavaScript
export const vertexFormats = [
'uint8',
'uint8x2',
'uint8x4',
'sint8',
'sint8x2',
'sint8x4',
'unorm8',
'unorm8x2',
'unorm8x4',
'snorm8',
'snorm8x2',
'snorm8x4',
'uint16',
'uint16x2',
'uint16x4',
'sint16',
'sint16x2',
'sint16x4',
'unorm16',
'unorm16x2',
'unorm16x4',
'snorm16',
'snorm16x2',
'snorm16x4',
'float16',
'float16x2',
'float16x4',
'float32',
'float32x2',
'float32x3',
'float32x4',
'uint32',
'uint32x2',
'uint32x3',
'uint32x4',
'sint32',
'sint32x2',
'sint32x3',
'sint32x4',
'unorm10-10-10-2',
'unorm8x4-bgra',
];
export const kindToDefaultFormatMap = {
f32: 'float32',
vec2f: 'float32x2',
vec3f: 'float32x3',
vec4f: 'float32x4',
f16: 'float16',
vec2h: 'float16x2',
// vec3h has no direct equivalent in the spec
vec4h: 'float16x4',
u32: 'uint32',
vec2u: 'uint32x2',
vec3u: 'uint32x3',
vec4u: 'uint32x4',
i32: 'sint32',
vec2i: 'sint32x2',
vec3i: 'sint32x3',
vec4i: 'sint32x4',
};