diff --git a/src/tests/angle_end2end_tests_expectations.txt b/src/tests/angle_end2end_tests_expectations.txt index e85216c0c..4fca769db 100644 --- a/src/tests/angle_end2end_tests_expectations.txt +++ b/src/tests/angle_end2end_tests_expectations.txt @@ -25,6 +25,10 @@ 4889 VULKAN : GeometryShaderTest.LayeredFramebufferPreRenderClear3DColor/* = SKIP 4889 VULKAN : GLSLTest_ES31.VaryingTessellationSampleInAndOut/* = SKIP +// Vulkan generic +6641 VULKAN : UniformTest.UnusedStructInlineUniform/* = SKIP +6641 VULKAN : UniformTest.UnusedStructInlineUniformWithSampler/* = SKIP + // Windows 3786 WIN NVIDIA D3D11 : BufferDataOverflowTest.VertexBufferIntegerOverflow/* = SKIP 4092 WIN VULKAN : BufferDataOverflowTest.VertexBufferIntegerOverflow/* = SKIP @@ -108,6 +112,8 @@ 6570 MAC INTEL OPENGL : WebGLCompatibilityTest.RGB32FTextures/* = SKIP 6603 MAC OPENGL : ProgramBinaryES3Test.SaveAndLoadDetachedShaders/* = SKIP 6643 MAC AMD OPENGL : TransformFeedbackTest.TransformFeedbackQueryPausedDrawThenResume/* = SKIP +6641 MAC METAL : UniformTest.UnusedStructInlineUniform/* = SKIP +6641 MAC METAL : UniformTest.UnusedStructInlineUniformWithSampler/* = SKIP // Failures from Transform Feedback Enablement. Passes on BigSur 6407 MAC NVIDIA METAL : TransformFeedbackTest.OptimizedVaryings/ES3_Metal = SKIP diff --git a/src/tests/gl_tests/UniformTest.cpp b/src/tests/gl_tests/UniformTest.cpp index bf9238362..a06cc11bc 100644 --- a/src/tests/gl_tests/UniformTest.cpp +++ b/src/tests/gl_tests/UniformTest.cpp @@ -1461,6 +1461,58 @@ void main() EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green); } +TEST_P(UniformTest, UnusedStructInlineUniform) +{ + constexpr char kVS[] = R"(precision highp float; +attribute vec4 position; +void main() +{ + gl_Position = position; +})"; + + constexpr char kFS[] = R"(precision highp float; +uniform struct { + vec3 aVec3; + vec2 aVec2; +}aUniform; +varying vec2 texcoord; +void main() +{ + gl_FragColor = vec4(0,1,0,1); +})"; + + mProgram = CompileProgram(kVS, kFS); + ASSERT_NE(mProgram, 0u); + drawQuad(mProgram, "position", 0.5f); + EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green); +} + +TEST_P(UniformTest, UnusedStructInlineUniformWithSampler) +{ + constexpr char kVS[] = R"(precision highp float; +attribute vec4 position; +void main() +{ + gl_Position = position; +})"; + + constexpr char kFS[] = R"(precision highp float; +uniform struct { + sampler2D aSampler; + vec3 aVec3; +}aUniform; +varying vec2 texcoord; +void main() +{ + gl_FragColor = vec4(0,1,0,1); +})"; + + mProgram = CompileProgram(kVS, kFS); + ASSERT_NE(mProgram, 0u); + drawQuad(mProgram, "position", 0.5f); + EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green); +} + // Use this to select which configurations (e.g. which renderer, which GLES major version) these // tests should be run against. ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(SimpleUniformTest);