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)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd"));
VulkanExternalHelper helper;
helper.initialize(isSwiftshader());
helper.initialize(isSwiftshader(), enableDebugLayers());
VkFormat format = ChooseAnyImageFormat(helper);
ANGLE_SKIP_TEST_IF(format == VK_FORMAT_UNDEFINED);
......@@ -133,7 +133,7 @@ TEST_P(VulkanExternalImageTest, ShouldImportSemaphoreOpaqueFd)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_semaphore_fd"));
VulkanExternalHelper helper;
helper.initialize(isSwiftshader());
helper.initialize(isSwiftshader(), enableDebugLayers());
ANGLE_SKIP_TEST_IF(!helper.canCreateSemaphoreOpaqueFd());
......@@ -164,7 +164,7 @@ TEST_P(VulkanExternalImageTest, ShouldClearOpaqueFdRGBA8)
ANGLE_SKIP_TEST_IF(IsAndroid() && (IsPixel2() || IsPixel2XL()));
VulkanExternalHelper helper;
helper.initialize(isSwiftshader());
helper.initialize(isSwiftshader(), enableDebugLayers());
VkFormat format = VK_FORMAT_R8G8B8A8_UNORM;
ANGLE_SKIP_TEST_IF(
......@@ -217,7 +217,7 @@ TEST_P(VulkanExternalImageTest, ShouldClearZirconVmoRGBA8)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_memory_object_fuchsia"));
VulkanExternalHelper helper;
helper.initialize(isSwiftshader());
helper.initialize(isSwiftshader(), enableDebugLayers());
VkFormat format = VK_FORMAT_R8G8B8A8_UNORM;
ANGLE_SKIP_TEST_IF(
......@@ -271,7 +271,7 @@ TEST_P(VulkanExternalImageTest, TextureFormatCompatChromiumFd)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_EXT_memory_object_fd"));
VulkanExternalHelper helper;
helper.initialize(isSwiftshader());
helper.initialize(isSwiftshader(), enableDebugLayers());
for (const ImageFormatPair &format : kChromeFormats)
{
if (!helper.canCreateImageOpaqueFd(format.vkFormat, VK_IMAGE_TYPE_2D,
......@@ -325,7 +325,7 @@ TEST_P(VulkanExternalImageTest, TextureFormatCompatChromiumZirconHandle)
ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_ANGLE_memory_object_fuchsia"));
VulkanExternalHelper helper;
helper.initialize(isSwiftshader());
helper.initialize(isSwiftshader(), enableDebugLayers());
for (const ImageFormatPair &format : kChromeFormats)
{
if (!helper.canCreateImageZirconVmo(format.vkFormat, VK_IMAGE_TYPE_2D,
......
......@@ -338,6 +338,11 @@ class ANGLETestBase
return mCurrentParams->isSwiftshader() || angle::IsSwiftshaderDevice();
}
bool enableDebugLayers() const
{
return mCurrentParams->eglParameters.debugLayersEnabled != EGL_FALSE;
}
protected:
void ANGLETestSetUp();
void ANGLETestTearDown();
......
......@@ -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::ScopedVkLoaderEnvironment scopedEnvironment(true /* enableValidationLayers */, icd);
vk::ScopedVkLoaderEnvironment scopedEnvironment(enableValidationLayers, icd);
ASSERT(mInstance == VK_NULL_HANDLE);
VkResult result = VK_SUCCESS;
......@@ -183,13 +183,19 @@ void VulkanExternalHelper::initialize(bool useSwiftshader)
uint32_t enabledInstanceExtensionCount =
static_cast<uint32_t>(enabledInstanceExtensions.size());
std::vector<const char *> enabledLayerNames;
if (enableValidationLayers)
{
enabledLayerNames.push_back("VK_LAYER_KHRONOS_validation");
}
VkInstanceCreateInfo instanceCreateInfo = {
/* .sType = */ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
/* .pNext = */ nullptr,
/* .flags = */ 0,
/* .pApplicationInfo = */ &applicationInfo,
/* .enabledLayerCount = */ 0,
/* .ppEnabledLayerNames = */ nullptr,
/* .enabledLayerCount = */ enabledLayerNames.size(),
/* .ppEnabledLayerNames = */ enabledLayerNames.data(),
/* .enabledExtensionCount = */ enabledInstanceExtensionCount,
/* .ppEnabledExtensionName = */ enabledInstanceExtensions.data(),
};
......@@ -528,7 +534,9 @@ bool VulkanExternalHelper::canCreateSemaphoreOpaqueFd() const
/* .handleType = */ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
};
VkExternalSemaphoreProperties externalSemaphoreProperties = {};
VkExternalSemaphoreProperties externalSemaphoreProperties = {
/* .sType = */ VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
};
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(mPhysicalDevice, &externalSemaphoreInfo,
&externalSemaphoreProperties);
......
......@@ -20,7 +20,7 @@ class VulkanExternalHelper
VulkanExternalHelper();
~VulkanExternalHelper();
void initialize(bool useSwiftshader);
void initialize(bool useSwiftshader, bool enableValidationLayers);
VkInstance getInstance() const { return mInstance; }
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