// // Copyright 2016 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // SRGBFramebufferTest.cpp: Tests of sRGB framebuffer functionality. #include "test_utils/ANGLETest.h" #include "test_utils/gl_raii.h" namespace { constexpr angle::GLColor linearColor(64, 127, 191, 255); constexpr angle::GLColor srgbColor(13, 54, 133, 255); } // namespace namespace angle { class SRGBFramebufferTest : public ANGLETest<> { … }; class SRGBFramebufferTestES3 : public SRGBFramebufferTest { … }; // Test basic validation of GL_EXT_sRGB_write_control TEST_P(SRGBFramebufferTest, Validation) { … } // Test basic functionality of GL_EXT_sRGB_write_control TEST_P(SRGBFramebufferTest, BasicUsage) { … } // Test that GL_EXT_sRGB_write_control state applies to all framebuffers if multiple are used // 1. disable srgb // 2. draw to both framebuffers // 3. enable srgb // 4. draw to both framebuffers TEST_P(SRGBFramebufferTest, MultipleFramebuffers) { … } // Test that we behave correctly when we toggle FRAMEBUFFER_SRGB_EXT on a framebuffer that has an // attachment in linear colorspace TEST_P(SRGBFramebufferTest, NegativeAlreadyLinear) { … } // Test that lifetimes of internal resources are tracked correctly by deleting a texture and then // attempting to use it. This is expected to produce a non-fatal error. TEST_P(SRGBFramebufferTest, NegativeLifetimeTracking) { … } // Test that glBlitFramebuffer correctly converts colorspaces TEST_P(SRGBFramebufferTestES3, BlitFramebuffer) { … } // This test reproduces an issue in the Vulkan backend found in the Chromium CI that // was caused by enabling the VK_KHR_image_format_list extension on SwiftShader // which exposed GL_EXT_sRGB_write_control. TEST_P(SRGBFramebufferTest, DrawToSmallFBOClearLargeFBO) { … } // 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(…); ANGLE_INSTANTIATE_TEST_ES3(…); } // namespace angle