Always run SingleEntryPoint transform on GL backend
Bug: dawn:658, dawn:2161
Change-Id: Ieaa24f5d614fcd136e6855a0f40621ac230cc7aa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/158320
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
diff --git a/src/dawn/native/opengl/ShaderModuleGL.cpp b/src/dawn/native/opengl/ShaderModuleGL.cpp
index 5783205..5bf9480 100644
--- a/src/dawn/native/opengl/ShaderModuleGL.cpp
+++ b/src/dawn/native/opengl/ShaderModuleGL.cpp
@@ -291,10 +291,10 @@
tint::ast::transform::Manager transformManager;
tint::ast::transform::DataMap transformInputs;
+ transformManager.Add<tint::ast::transform::SingleEntryPoint>();
+ transformInputs.Add<tint::ast::transform::SingleEntryPoint::Config>(r.entryPointName);
+
if (r.substituteOverrideConfig) {
- transformManager.Add<tint::ast::transform::SingleEntryPoint>();
- transformInputs.Add<tint::ast::transform::SingleEntryPoint::Config>(
- r.entryPointName);
// This needs to run after SingleEntryPoint transform which removes unused overrides
// for current entry point.
transformManager.Add<tint::ast::transform::SubstituteOverride>();
diff --git a/src/dawn/tests/end2end/EntryPointTests.cpp b/src/dawn/tests/end2end/EntryPointTests.cpp
index b8d087b..e22d0cd 100644
--- a/src/dawn/tests/end2end/EntryPointTests.cpp
+++ b/src/dawn/tests/end2end/EntryPointTests.cpp
@@ -37,8 +37,6 @@
// Test creating a render pipeline from two entryPoints in the same module.
TEST_P(EntryPointTests, FragAndVertexSameModule) {
- // TODO(crbug.com/dawn/658): Crashes on bots
- DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES());
wgpu::ShaderModule module = utils::CreateShaderModule(device, R"(
@vertex fn vertex_main() -> @builtin(position) vec4f {
return vec4f(0.0, 0.0, 0.0, 1.0);
diff --git a/src/dawn/tests/end2end/ShaderTests.cpp b/src/dawn/tests/end2end/ShaderTests.cpp
index c618399..6ded048 100644
--- a/src/dawn/tests/end2end/ShaderTests.cpp
+++ b/src/dawn/tests/end2end/ShaderTests.cpp
@@ -605,9 +605,6 @@
// the BindingRemapper, causing an intermediate AST to be invalid (and fail the overall
// compilation).
TEST_P(ShaderTests, FirstIndexOffsetRegisterConflictInHLSLTransforms) {
- // TODO(crbug.com/dawn/658): Crashes on bots because there are two entrypoints in the shader.
- DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES());
-
const char* shader = R"(
// Dumped WGSL:
diff --git a/webgpu-cts/compat-expectations.txt b/webgpu-cts/compat-expectations.txt
index 05b8b0a..47c7017 100644
--- a/webgpu-cts/compat-expectations.txt
+++ b/webgpu-cts/compat-expectations.txt
@@ -254,24 +254,6 @@
# maxTextureDimension2D
crbug.com/dawn/2136 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:* [ Failure ]
-# maxSampledTexturesPerShaderStage
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-crbug.com/dawn/2161 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]
-
# maxStorageBuffersPerShaderStage
crbug.com/dawn/2165 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxStorageBuffersPerShaderStage:createPipeline,at_over:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow"* [ Failure ]
crbug.com/dawn/2165 [ angle-opengl ] webgpu:api,validation,capability_checks,limits,maxStorageBuffersPerShaderStage:createPipeline,at_over:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow"* [ Failure ]