Commit 7c6a30c2 by Michael Spang Committed by Commit Bot

Enable validation layers in VulkanExternalHelper

If validation layers are requested by default, also enabled them in VulkanExternalHelper. Bug: angleproject:3289 Change-Id: Ic75089d38992be3b4745ce0309bf4ce6b8a702b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195683Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
parent 204720bd
...@@ -87,7 +87,7 @@ TEST_P(VulkanExternalImageTest, ShouldImportMemoryOpaqueFd) ...@@ -87,7 +87,7 @@ TEST_P(VulkanExternalImageTest, ShouldImportMemoryOpaqueFd)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd")); ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd"));
VulkanExternalHelper helper; VulkanExternalHelper helper;
helper.initialize(isSwiftshader()); helper.initialize(isSwiftshader(), enableDebugLayers());
VkFormat format = ChooseAnyImageFormat(helper); VkFormat format = ChooseAnyImageFormat(helper);
ANGLE_SKIP_TEST_IF(format == VK_FORMAT_UNDEFINED); ANGLE_SKIP_TEST_IF(format == VK_FORMAT_UNDEFINED);
...@@ -133,7 +133,7 @@ TEST_P(VulkanExternalImageTest, ShouldImportSemaphoreOpaqueFd) ...@@ -133,7 +133,7 @@ TEST_P(VulkanExternalImageTest, ShouldImportSemaphoreOpaqueFd)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_semaphore_fd")); ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_semaphore_fd"));
VulkanExternalHelper helper; VulkanExternalHelper helper;
helper.initialize(isSwiftshader()); helper.initialize(isSwiftshader(), enableDebugLayers());
ANGLE_SKIP_TEST_IF(!helper.canCreateSemaphoreOpaqueFd()); ANGLE_SKIP_TEST_IF(!helper.canCreateSemaphoreOpaqueFd());
...@@ -164,7 +164,7 @@ TEST_P(VulkanExternalImageTest, ShouldClearOpaqueFdRGBA8) ...@@ -164,7 +164,7 @@ TEST_P(VulkanExternalImageTest, ShouldClearOpaqueFdRGBA8)
ANGLE_SKIP_TEST_IF(IsAndroid() && (IsPixel2() || IsPixel2XL())); ANGLE_SKIP_TEST_IF(IsAndroid() && (IsPixel2() || IsPixel2XL()));
VulkanExternalHelper helper; VulkanExternalHelper helper;
helper.initialize(isSwiftshader()); helper.initialize(isSwiftshader(), enableDebugLayers());
VkFormat format = VK_FORMAT_R8G8B8A8_UNORM; VkFormat format = VK_FORMAT_R8G8B8A8_UNORM;
ANGLE_SKIP_TEST_IF( ANGLE_SKIP_TEST_IF(
...@@ -217,7 +217,7 @@ TEST_P(VulkanExternalImageTest, ShouldClearZirconVmoRGBA8) ...@@ -217,7 +217,7 @@ TEST_P(VulkanExternalImageTest, ShouldClearZirconVmoRGBA8)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_memory_object_fuchsia")); ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_memory_object_fuchsia"));
VulkanExternalHelper helper; VulkanExternalHelper helper;
helper.initialize(isSwiftshader()); helper.initialize(isSwiftshader(), enableDebugLayers());
VkFormat format = VK_FORMAT_R8G8B8A8_UNORM; VkFormat format = VK_FORMAT_R8G8B8A8_UNORM;
ANGLE_SKIP_TEST_IF( ANGLE_SKIP_TEST_IF(
...@@ -271,7 +271,7 @@ TEST_P(VulkanExternalImageTest, TextureFormatCompatChromiumFd) ...@@ -271,7 +271,7 @@ TEST_P(VulkanExternalImageTest, TextureFormatCompatChromiumFd)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd")); ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd"));
VulkanExternalHelper helper; VulkanExternalHelper helper;
helper.initialize(isSwiftshader()); helper.initialize(isSwiftshader(), enableDebugLayers());
for (const ImageFormatPair &format : kChromeFormats) for (const ImageFormatPair &format : kChromeFormats)
{ {
if (!helper.canCreateImageOpaqueFd(format.vkFormat, VK_IMAGE_TYPE_2D, if (!helper.canCreateImageOpaqueFd(format.vkFormat, VK_IMAGE_TYPE_2D,
...@@ -325,7 +325,7 @@ TEST_P(VulkanExternalImageTest, TextureFormatCompatChromiumZirconHandle) ...@@ -325,7 +325,7 @@ TEST_P(VulkanExternalImageTest, TextureFormatCompatChromiumZirconHandle)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_memory_object_fuchsia")); ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_memory_object_fuchsia"));
VulkanExternalHelper helper; VulkanExternalHelper helper;
helper.initialize(isSwiftshader()); helper.initialize(isSwiftshader(), enableDebugLayers());
for (const ImageFormatPair &format : kChromeFormats) for (const ImageFormatPair &format : kChromeFormats)
{ {
if (!helper.canCreateImageZirconVmo(format.vkFormat, VK_IMAGE_TYPE_2D, if (!helper.canCreateImageZirconVmo(format.vkFormat, VK_IMAGE_TYPE_2D,
......
...@@ -338,6 +338,11 @@ class ANGLETestBase ...@@ -338,6 +338,11 @@ class ANGLETestBase
return mCurrentParams->isSwiftshader() || angle::IsSwiftshaderDevice(); return mCurrentParams->isSwiftshader() || angle::IsSwiftshaderDevice();
} }
bool enableDebugLayers() const
{
return mCurrentParams->eglParameters.debugLayersEnabled != EGL_FALSE;
}
protected: protected:
void ANGLETestSetUp(); void ANGLETestSetUp();
void ANGLETestTearDown(); void ANGLETestTearDown();
......
...@@ -140,11 +140,11 @@ VulkanExternalHelper::~VulkanExternalHelper() ...@@ -140,11 +140,11 @@ VulkanExternalHelper::~VulkanExternalHelper()
} }
} }
void VulkanExternalHelper::initialize(bool useSwiftshader) void VulkanExternalHelper::initialize(bool useSwiftshader, bool enableValidationLayers)
{ {
vk::ICD icd = useSwiftshader ? vk::ICD::SwiftShader : vk::ICD::Default; vk::ICD icd = useSwiftshader ? vk::ICD::SwiftShader : vk::ICD::Default;
vk::ScopedVkLoaderEnvironment scopedEnvironment(true /* enableValidationLayers */, icd); vk::ScopedVkLoaderEnvironment scopedEnvironment(enableValidationLayers, icd);
ASSERT(mInstance == VK_NULL_HANDLE); ASSERT(mInstance == VK_NULL_HANDLE);
VkResult result = VK_SUCCESS; VkResult result = VK_SUCCESS;
...@@ -183,13 +183,19 @@ void VulkanExternalHelper::initialize(bool useSwiftshader) ...@@ -183,13 +183,19 @@ void VulkanExternalHelper::initialize(bool useSwiftshader)
uint32_t enabledInstanceExtensionCount = uint32_t enabledInstanceExtensionCount =
static_cast<uint32_t>(enabledInstanceExtensions.size()); static_cast<uint32_t>(enabledInstanceExtensions.size());
std::vector<const char *> enabledLayerNames;
if (enableValidationLayers)
{
enabledLayerNames.push_back("VK_LAYER_KHRONOS_validation");
}
VkInstanceCreateInfo instanceCreateInfo = { VkInstanceCreateInfo instanceCreateInfo = {
/* .sType = */ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, /* .sType = */ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
/* .pNext = */ nullptr, /* .pNext = */ nullptr,
/* .flags = */ 0, /* .flags = */ 0,
/* .pApplicationInfo = */ &applicationInfo, /* .pApplicationInfo = */ &applicationInfo,
/* .enabledLayerCount = */ 0, /* .enabledLayerCount = */ enabledLayerNames.size(),
/* .ppEnabledLayerNames = */ nullptr, /* .ppEnabledLayerNames = */ enabledLayerNames.data(),
/* .enabledExtensionCount = */ enabledInstanceExtensionCount, /* .enabledExtensionCount = */ enabledInstanceExtensionCount,
/* .ppEnabledExtensionName = */ enabledInstanceExtensions.data(), /* .ppEnabledExtensionName = */ enabledInstanceExtensions.data(),
}; };
...@@ -528,7 +534,9 @@ bool VulkanExternalHelper::canCreateSemaphoreOpaqueFd() const ...@@ -528,7 +534,9 @@ bool VulkanExternalHelper::canCreateSemaphoreOpaqueFd() const
/* .handleType = */ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, /* .handleType = */ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
}; };
VkExternalSemaphoreProperties externalSemaphoreProperties = {}; VkExternalSemaphoreProperties externalSemaphoreProperties = {
/* .sType = */ VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
};
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(mPhysicalDevice, &externalSemaphoreInfo, vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(mPhysicalDevice, &externalSemaphoreInfo,
&externalSemaphoreProperties); &externalSemaphoreProperties);
......
...@@ -20,7 +20,7 @@ class VulkanExternalHelper ...@@ -20,7 +20,7 @@ class VulkanExternalHelper
VulkanExternalHelper(); VulkanExternalHelper();
~VulkanExternalHelper(); ~VulkanExternalHelper();
void initialize(bool useSwiftshader); void initialize(bool useSwiftshader, bool enableValidationLayers);
VkInstance getInstance() const { return mInstance; } VkInstance getInstance() const { return mInstance; }
VkPhysicalDevice getPhysicalDevice() const { return mPhysicalDevice; } VkPhysicalDevice getPhysicalDevice() const { return mPhysicalDevice; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment