Fix SSBO bindings in GLES backend.

OpenGL ES doesn't have the glShaderStorageBlockBinding() call, so we
modify the binding decorations set in the shader instead. This requires
plumbing through some more pipeline state at shader translation time.

BUG=dawn:584
Change-Id: Ib7fdb6a7ad1eff1a99d44d55e9d923214affe702
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/34400
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
Stephen White
2020-12-01 17:42:57 +00:00
committed by Commit Bot service account
parent c3830d436c
commit 7bf553c467
4 changed files with 31 additions and 12 deletions

View File

@@ -1095,6 +1095,7 @@ TEST_P(BindGroupTests, ReadonlyStorage) {
// used correctly. The test loads a different value from each binding, and writes 1 to a storage
// buffer if all values are correct.
TEST_P(BindGroupTests, ReallyLargeBindGroup) {
DAWN_SKIP_TEST_IF(IsOpenGLES());
std::string interface = "#version 450\n";
std::string body;
uint32_t binding = 0;
@@ -1232,4 +1233,5 @@ DAWN_INSTANTIATE_TEST(BindGroupTests,
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
OpenGLESBackend(),
VulkanBackend());