Commit 02a579e9 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: roll Vulkan repos to v1.1.102

Bug: angleproject:3320 Change-Id: Ia24f9bc2499f36c6aab810db00bb6408920222fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1541719 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 56124e68
......@@ -21,16 +21,16 @@ vars = {
'spirv_tools_revision': '2ac348b5c0a58c64305379baca778c2e58873cd6',
# Current revision of Khronos Vulkan-Headers.
'vulkan_headers_revision': 'c200cb25db0f47364d3318d92c1d8e9dfff2fef1',
'vulkan_headers_revision': '982f0f84dccf6f281b48318c77261a9028000126',
# Current revision of Khronos Vulkan-Loader.
'vulkan_loader_revision': 'e1eafa18e17d00374253bcd37d015befa89fcc43',
'vulkan_loader_revision': '2f0abfcf9eb04018e6e92125a70bc28665aa17fe',
# Current revision of Khronos Vulkan-Tools.
'vulkan_tools_revision': '91b17fd866b2e9cfb875bf516b05536d059416b1',
'vulkan_tools_revision': 'f392e71b994036c92b896c2a62cc63d042b7f9b1',
# Current revision of Khronos Vulkan-ValidationLayers.
'vulkan_validation_revision': '4eee269ae976567ef78db9c9feaafc3364578c87',
'vulkan_validation_revision': 'ff80a937c8a505abbdddb95d8ffaa446820c8391',
}
deps = {
......
......@@ -314,7 +314,7 @@
"Vulkan mandatory format support table:src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":
"d20e549634ef32d6ad4e9f0b28e52acf",
"Vulkan mandatory format support table:third_party/vulkan-headers/src/registry/vk.xml":
"f5c8c9b8e521644ded34d44b1016c25e",
"8af0f992bd45c2d9500eb5ed60c256d6",
"packed enum:src/common/PackedEGLEnums_autogen.cpp":
"c9f7cea85751e5a39b92bccc1d97f3bd",
"packed enum:src/common/PackedEGLEnums_autogen.h":
......
......@@ -181,6 +181,12 @@ angle::Result FramebufferVk::clear(const gl::Context *context, GLbitfield mask)
bool clearColor = IsMaskFlagSet(static_cast<int>(mask), GL_COLOR_BUFFER_BIT);
// If the only thing to be cleared was depth and it's masked, there's nothing to do.
if (!clearColor && !clearDepth && !clearStencil)
{
return angle::Result::Continue;
}
const gl::State &glState = context->getState();
VkClearDepthStencilValue clearDepthStencilValue =
......
......@@ -466,24 +466,6 @@ angle::Result WindowSurfaceVk::recreateSwapchain(DisplayVk *displayVk,
// have finished. We therefore store the handle to the swapchain being destroyed in the
// swap history (alongside the serial of the last submission) so it can be destroyed once we
// wait on that serial as part of the CPU throttling.
//
// TODO(syoussefi): the spec specifically allows multiple retired swapchains to exist:
//
// > Multiple retired swapchains can be associated with the same VkSurfaceKHR through
// > multiple uses of oldSwapchain that outnumber calls to vkDestroySwapchainKHR.
//
// However, a bug in the validation layers currently forces us to limit this to one retired
// swapchain. Once the issue is resolved, the following for loop can be removed.
// http://anglebug.com/3095
for (SwapHistory &swap : mSwapHistory)
{
if (swap.swapchain != VK_NULL_HANDLE)
{
ANGLE_TRY(renderer->finishToSerial(displayVk, swap.serial));
vkDestroySwapchainKHR(renderer->getDevice(), swap.swapchain, nullptr);
swap.swapchain = VK_NULL_HANDLE;
}
}
mSwapHistory[swapHistoryIndex].swapchain = oldSwapchain;
}
......@@ -735,21 +717,27 @@ angle::Result WindowSurfaceVk::present(DisplayVk *displayVk,
VkPresentRegionKHR presentRegion = {};
VkPresentRegionsKHR presentRegions = {};
std::vector<VkRectLayerKHR> vk_rects;
std::vector<VkRectLayerKHR> vkRects;
if (renderer->getFeatures().supportsIncrementalPresent && (n_rects > 0))
{
EGLint *egl_rects = rects;
EGLint width = getWidth();
EGLint height = getHeight();
EGLint *eglRects = rects;
presentRegion.rectangleCount = n_rects;
vk_rects.resize(n_rects);
for (EGLint rect = 0; rect < n_rects; rect++)
vkRects.resize(n_rects);
for (EGLint i = 0; i < n_rects; i++)
{
vk_rects[rect].offset.x = *egl_rects++;
vk_rects[rect].offset.y = *egl_rects++;
vk_rects[rect].extent.width = *egl_rects++;
vk_rects[rect].extent.height = *egl_rects++;
vk_rects[rect].layer = 0;
VkRectLayerKHR &rect = vkRects[i];
// Make sure the damage rects are within swapchain bounds.
rect.offset.x = gl::clamp(*eglRects++, 0, width);
rect.offset.y = gl::clamp(*eglRects++, 0, height);
rect.extent.width = gl::clamp(*eglRects++, 0, width - rect.offset.x);
rect.extent.height = gl::clamp(*eglRects++, 0, height - rect.offset.y);
rect.layer = 0;
}
presentRegion.pRectangles = vk_rects.data();
presentRegion.pRectangles = vkRects.data();
presentRegions.sType = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
presentRegions.pNext = nullptr;
......
......@@ -302,7 +302,6 @@ core_validation_sources = [
"$vulkan_gen_dir/vk_safe_struct.h",
"src/layers/buffer_validation.cpp",
"src/layers/buffer_validation.h",
"src/layers/core_dispatch.cpp",
"src/layers/core_validation.cpp",
"src/layers/core_validation.h",
"src/layers/convert_to_renderpass2.cpp",
......@@ -368,9 +367,9 @@ chassis_deps = [
layers = [
[
"core_validation",
core_validation_sources,
core_validation_deps,
[],
core_validation_sources + chassis_sources,
core_validation_deps + chassis_deps,
[ "BUILD_CORE_VALIDATION" ],
],
[
"object_lifetimes",
......
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