Multiple draw buffers in blend_equation_advanced
authorMark Adams <marka@nvidia.com>
Fri, 20 Oct 2017 13:49:08 +0000 (09:49 -0400)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Tue, 7 Nov 2017 09:13:02 +0000 (04:13 -0500)
GL_NVX_blend_equation_advanced_multi_draw_buffers adds support for
multiple draw buffers with advanced blend equations. This change
modifies the below test to check for this extension and to expect
GL_NO_ERROR if it is present.

Components: AOSP

VK-GL-CTS issue: 770

Affects:
dEQP-GLES31.functional.debug.negative_coverage.get_error.advanced_blend.attachment_advanced_equation

(cherry picked from commit 2cb35a235c1a7bd3c63b296c37e186eec34e08e2)

Change-Id: I70ba495d96b4a17bed589e3affa693f572fde446

modules/gles31/functional/es31fNegativeAdvancedBlendEquationTests.cpp

index 96c0b7f..511bb5c 100644 (file)
@@ -224,7 +224,7 @@ void attachment_advanced_equation (NegativeTestContext& ctx)
        ctx.expectError(GL_NO_ERROR);
        ctx.glCheckFramebufferStatus(GL_FRAMEBUFFER);
 
-       ctx.beginSection("GL_INVALID_OPERATION is generated if blending is enabled, advanced equations are used, and the draw buffer for other color outputs is not NONE.");
+       ctx.beginSection("GL_INVALID_OPERATION is generated if blending is enabled, advanced equations are used, and the draw buffer for other color outputs is not NONE unless NVX_blend_equation_advanced_multi_draw_buffers is supported.");
        for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(s_equations); ++ndx)
        {
                glu::ShaderProgram      program(ctx.getRenderContext(), generateProgramSources(ctx, s_equations[ndx]));
@@ -237,7 +237,10 @@ void attachment_advanced_equation (NegativeTestContext& ctx)
                ctx.expectError(GL_NO_ERROR);
                ctx.glBlendEquation(getEquation(s_equations[ndx]));
                ctx.glDrawElements(GL_TRIANGLES, 0, GL_UNSIGNED_INT, 0);
-               ctx.expectError(GL_INVALID_OPERATION);
+               if (ctx.isExtensionSupported("GL_NVX_blend_equation_advanced_multi_draw_buffers"))
+                       ctx.expectError(GL_NO_ERROR);
+               else
+                       ctx.expectError(GL_INVALID_OPERATION);
        }
        ctx.endSection();