// // Copyright 2021 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. // // VulkanImageTest.cpp : Tests of EGL_ANGLE_vulkan_image & GL_ANGLE_vulkan_image extensions. #include "test_utils/ANGLETest.h" #include "common/debug.h" #include "test_utils/VulkanHelper.h" #include "test_utils/angle_test_instantiate.h" #include "test_utils/gl_raii.h" namespace angle { constexpr GLuint kWidth = …; constexpr GLuint kHeight = …; constexpr GLuint kWhite = …; constexpr GLuint kRed = …; class VulkanImageTest : public ANGLETest<> { … }; class VulkanMemoryTest : public ANGLETest<> { … }; bool VulkanMemoryTest::compatibleMemorySizesForDeviceOOMTest(VkPhysicalDevice physicalDevice, VkDeviceSize *totalDeviceMemorySizeOut) { … } // Check extensions with Vukan backend. TEST_P(VulkanImageTest, HasVulkanImageExtensions) { … } TEST_P(VulkanImageTest, DeviceVulkan) { … } TEST_P(VulkanImageTest, ExportVKImage) { … } // Check pixels after glTexImage2D TEST_P(VulkanImageTest, PixelTestTexImage2D) { … } // Check pixels after glClear TEST_P(VulkanImageTest, PixelTestClear) { … } // Check pixels after GL draw. TEST_P(VulkanImageTest, PixelTestDrawQuad) { … } // Test importing VkImage with eglCreateImageKHR TEST_P(VulkanImageTest, ClientBuffer) { … } // Test importing VkImage with eglCreateImageKHR and drawing to make sure no errors occur in setting // up the framebuffer, including an imageless framebuffer. TEST_P(VulkanImageTest, ClientBufferWithDraw) { … } // Test that when VMA image suballocation is used, image memory can be allocated from the system in // case the device memory runs out. TEST_P(VulkanMemoryTest, AllocateVMAImageWhenDeviceOOM) { … } // Test that when VMA image suballocation is used, it is possible to free space for a new image on // the device by freeing garbage memory from a 2D texture array. TEST_P(VulkanMemoryTest, AllocateVMAImageAfterFreeing2DArrayGarbageWhenDeviceOOM) { … } // Test that when VMA image suballocation is used, it is possible to free space for a new image on // the device by freeing finished garbage memory from a 2D texture. TEST_P(VulkanMemoryTest, AllocateVMAImageAfterFreeingFinished2DGarbageWhenDeviceOOM) { … } // Test that when VMA image suballocation is used, it is possible to free space for a new buffer on // the device by freeing garbage memory from a 2D texture. TEST_P(VulkanMemoryTest, AllocateBufferAfterFreeing2DGarbageWhenDeviceOOM) { … } // 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