#web-gpu #serialization #buffer #uniform #layout #vec4 #member

serde_webgpu

序列化WebGPU统一缓冲区成员布局

4个版本

0.2.1 2023年10月25日
0.2.0 2023年10月24日
0.1.1 2023年6月4日
0.1.0 2023年6月3日

#1510 in 编码

MIT/Apache

23KB
624

serde_webgpu

将内容序列化到WebGPU。

#[derive(Serialize)]
struct Uniform {
    a: f16,
    b: mat4x4<f32>,
}

let uniform = Uniform {
    a: f16::from_f32(123.456),
    b: [
        vec4([1.0, 2.0, 3.0, 4.0]),
        vec4([4.0, 5.0, 7.0, 8.0]),
        vec4([1.0, 2.0, 3.0, 4.0]),
        vec4([5.0, 6.0, 7.0, 8.0]),
    ],
};

serialize_webgpu_buffer(&uniform).unwrap();

lib.rs:


#[derive(Serialize)]
struct Uniform {
    a: f16,
    b: mat4x4<f32>,
}

let uniform = Uniform {
    a: f16::from_f32(123.456),
    b: [
        vec4([1.0, 2.0, 3.0, 4.0]),
        vec4([4.0, 5.0, 7.0, 8.0]),
        vec4([1.0, 2.0, 3.0, 4.0]),
        vec4([5.0, 6.0, 7.0, 8.0]),
    ],
};

serialize_webgpu_buffer(&uniform).unwrap();

依赖项

~0.6–1.2MB
~28K SLoC