buffer

Uniform Buffer

  • Vulkan : BufferUsageFlags : UNIFORM BUFFER

  • Dx : Constant Buffer

  • OpenGL : Uniform Buffer Object

  • HLSL : cbuffer _ : register(b##bind, space##set){type param;};

  • GLSL : layout (set = 3, binding = 2) uniform in_lights { Light light;};

  • 一般 Alignment 16 bytes, 大小限制为 16 KiB

  • Unity : Shader Properties, CBUFFER

Shader Storage Buffer Objects (SSBOs)

  • 现代图形 api 上才有, GLES 3.1 以上

  • GLSL : layout(std430, binding = 2) buffer MyBuffer

  • HLSL : RW/StructuredBuffer<MyStructType> myBuffer : register(t2);

  • Vulkan : STORAGE_BUFFER

Push Constants

  • 只有 Vulkan 才有, 每次提交时要设置

最后更新于