diff --git a/src/dawn_native/opengl/CommandBufferGL.cpp b/src/dawn_native/opengl/CommandBufferGL.cpp index 3993d5f107..b8052d2270 100644 --- a/src/dawn_native/opengl/CommandBufferGL.cpp +++ b/src/dawn_native/opengl/CommandBufferGL.cpp @@ -288,7 +288,8 @@ namespace dawn_native { namespace opengl { } } break; - case wgpu::BindingType::StorageBuffer: { + case wgpu::BindingType::StorageBuffer: + case wgpu::BindingType::ReadonlyStorageBuffer: { BufferBinding binding = group->GetBindingAsBufferBinding(bindingIndex); GLuint buffer = ToBackend(binding.buffer)->GetHandle(); GLuint ssboIndex = indices[bindingIndex]; @@ -304,7 +305,6 @@ namespace dawn_native { namespace opengl { } break; case wgpu::BindingType::StorageTexture: - case wgpu::BindingType::ReadonlyStorageBuffer: UNREACHABLE(); break; diff --git a/src/dawn_native/opengl/PipelineGL.cpp b/src/dawn_native/opengl/PipelineGL.cpp index e727e9b29d..e2808758fd 100644 --- a/src/dawn_native/opengl/PipelineGL.cpp +++ b/src/dawn_native/opengl/PipelineGL.cpp @@ -123,7 +123,8 @@ namespace dawn_native { namespace opengl { } } break; - case wgpu::BindingType::StorageBuffer: { + case wgpu::BindingType::StorageBuffer: + case wgpu::BindingType::ReadonlyStorageBuffer: { GLuint location = gl.GetProgramResourceIndex( mProgram, GL_SHADER_STORAGE_BLOCK, name.c_str()); if (location != GL_INVALID_INDEX) { @@ -139,7 +140,6 @@ namespace dawn_native { namespace opengl { break; case wgpu::BindingType::StorageTexture: - case wgpu::BindingType::ReadonlyStorageBuffer: UNREACHABLE(); break; diff --git a/src/dawn_native/opengl/PipelineLayoutGL.cpp b/src/dawn_native/opengl/PipelineLayoutGL.cpp index 2884dfa557..530e7d0f83 100644 --- a/src/dawn_native/opengl/PipelineLayoutGL.cpp +++ b/src/dawn_native/opengl/PipelineLayoutGL.cpp @@ -50,12 +50,12 @@ namespace dawn_native { namespace opengl { break; case wgpu::BindingType::StorageBuffer: + case wgpu::BindingType::ReadonlyStorageBuffer: mIndexInfo[group][binding] = ssboIndex; ssboIndex++; break; case wgpu::BindingType::StorageTexture: - case wgpu::BindingType::ReadonlyStorageBuffer: UNREACHABLE(); break; diff --git a/src/tests/end2end/GpuMemorySynchronizationTests.cpp b/src/tests/end2end/GpuMemorySynchronizationTests.cpp index 8bc5b342ea..2917ee8ebd 100644 --- a/src/tests/end2end/GpuMemorySynchronizationTests.cpp +++ b/src/tests/end2end/GpuMemorySynchronizationTests.cpp @@ -691,4 +691,5 @@ TEST_P(MultipleWriteThenMultipleReadTests, OneBuffer) { DAWN_INSTANTIATE_TEST(MultipleWriteThenMultipleReadTests, D3D12Backend, MetalBackend, + OpenGLBackend, VulkanBackend);