概要
WebGPU Native開発で踏んだエラーとその対処をメモしています
エラーと対処
オフスクリーンレンダリング用のレンダーパス
- エラー内容
- オフスクリーンレンダリング用のレンダーパスの
wgpuRenderPassEncoderEnd
でメモリアクセス違反を起こす
- オフスクリーンレンダリング用のレンダーパスの
- 原因と対処
- カラーバッファとデプスバッファのサイズが違った
- レンダーパスに使用するTextureViewのフォーマットは
WGPUTextureFormat_BGRA8Unorm
のみ対応していた- RGBAの順番じゃないことに要注意
SSBOの使用
- エラー内容
- Vertex ShaderやFragment ShaderでSSBOを使用すると
MissingFeatures(VERTEX_WRITABLE_STORAGE)
エラーで落ちる
- Vertex ShaderやFragment ShaderでSSBOを使用すると
- 原因と対処
-
WGPUBindGroupLayoutEntry.buffer.type
をWGPUBufferBindingType_ReadOnlyStorage
にする - nagaでGLSLをWGSLにするとSSBOが
read_write
になるのでread
に変更するvar<storage, read> rw_TBO: TestBufferObject;
- 何かnagaのオプションがあるかも?
- GLSLで
readonly
を付けてやればWGSLでもそのように変換してくれるとのことreadonly layout(std430, binding = 1) buffer TestBufferObject { TestData data[]; } TBO;
- GLSLで
-