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 = { ...@@ -21,16 +21,16 @@ vars = {
'spirv_tools_revision': '2ac348b5c0a58c64305379baca778c2e58873cd6', 'spirv_tools_revision': '2ac348b5c0a58c64305379baca778c2e58873cd6',
# Current revision of Khronos Vulkan-Headers. # Current revision of Khronos Vulkan-Headers.
'vulkan_headers_revision': 'c200cb25db0f47364d3318d92c1d8e9dfff2fef1', 'vulkan_headers_revision': '982f0f84dccf6f281b48318c77261a9028000126',
# Current revision of Khronos Vulkan-Loader. # Current revision of Khronos Vulkan-Loader.
'vulkan_loader_revision': 'e1eafa18e17d00374253bcd37d015befa89fcc43', 'vulkan_loader_revision': '2f0abfcf9eb04018e6e92125a70bc28665aa17fe',
# Current revision of Khronos Vulkan-Tools. # Current revision of Khronos Vulkan-Tools.
'vulkan_tools_revision': '91b17fd866b2e9cfb875bf516b05536d059416b1', 'vulkan_tools_revision': 'f392e71b994036c92b896c2a62cc63d042b7f9b1',
# Current revision of Khronos Vulkan-ValidationLayers. # Current revision of Khronos Vulkan-ValidationLayers.
'vulkan_validation_revision': '4eee269ae976567ef78db9c9feaafc3364578c87', 'vulkan_validation_revision': 'ff80a937c8a505abbdddb95d8ffaa446820c8391',
} }
deps = { deps = {
......
...@@ -314,7 +314,7 @@ ...@@ -314,7 +314,7 @@
"Vulkan mandatory format support table:src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp": "Vulkan mandatory format support table:src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":
"d20e549634ef32d6ad4e9f0b28e52acf", "d20e549634ef32d6ad4e9f0b28e52acf",
"Vulkan mandatory format support table:third_party/vulkan-headers/src/registry/vk.xml": "Vulkan mandatory format support table:third_party/vulkan-headers/src/registry/vk.xml":
"f5c8c9b8e521644ded34d44b1016c25e", "8af0f992bd45c2d9500eb5ed60c256d6",
"packed enum:src/common/PackedEGLEnums_autogen.cpp": "packed enum:src/common/PackedEGLEnums_autogen.cpp":
"c9f7cea85751e5a39b92bccc1d97f3bd", "c9f7cea85751e5a39b92bccc1d97f3bd",
"packed enum:src/common/PackedEGLEnums_autogen.h": "packed enum:src/common/PackedEGLEnums_autogen.h":
......
...@@ -181,6 +181,12 @@ angle::Result FramebufferVk::clear(const gl::Context *context, GLbitfield mask) ...@@ -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); 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(); const gl::State &glState = context->getState();
VkClearDepthStencilValue clearDepthStencilValue = VkClearDepthStencilValue clearDepthStencilValue =
......
...@@ -466,24 +466,6 @@ angle::Result WindowSurfaceVk::recreateSwapchain(DisplayVk *displayVk, ...@@ -466,24 +466,6 @@ angle::Result WindowSurfaceVk::recreateSwapchain(DisplayVk *displayVk,
// have finished. We therefore store the handle to the swapchain being destroyed in the // 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 // 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. // 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; mSwapHistory[swapHistoryIndex].swapchain = oldSwapchain;
} }
...@@ -735,21 +717,27 @@ angle::Result WindowSurfaceVk::present(DisplayVk *displayVk, ...@@ -735,21 +717,27 @@ angle::Result WindowSurfaceVk::present(DisplayVk *displayVk,
VkPresentRegionKHR presentRegion = {}; VkPresentRegionKHR presentRegion = {};
VkPresentRegionsKHR presentRegions = {}; VkPresentRegionsKHR presentRegions = {};
std::vector<VkRectLayerKHR> vk_rects; std::vector<VkRectLayerKHR> vkRects;
if (renderer->getFeatures().supportsIncrementalPresent && (n_rects > 0)) if (renderer->getFeatures().supportsIncrementalPresent && (n_rects > 0))
{ {
EGLint *egl_rects = rects; EGLint width = getWidth();
EGLint height = getHeight();
EGLint *eglRects = rects;
presentRegion.rectangleCount = n_rects; presentRegion.rectangleCount = n_rects;
vk_rects.resize(n_rects); vkRects.resize(n_rects);
for (EGLint rect = 0; rect < n_rects; rect++) for (EGLint i = 0; i < n_rects; i++)
{ {
vk_rects[rect].offset.x = *egl_rects++; VkRectLayerKHR &rect = vkRects[i];
vk_rects[rect].offset.y = *egl_rects++;
vk_rects[rect].extent.width = *egl_rects++; // Make sure the damage rects are within swapchain bounds.
vk_rects[rect].extent.height = *egl_rects++; rect.offset.x = gl::clamp(*eglRects++, 0, width);
vk_rects[rect].layer = 0; 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.sType = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
presentRegions.pNext = nullptr; presentRegions.pNext = nullptr;
......
...@@ -302,7 +302,6 @@ core_validation_sources = [ ...@@ -302,7 +302,6 @@ core_validation_sources = [
"$vulkan_gen_dir/vk_safe_struct.h", "$vulkan_gen_dir/vk_safe_struct.h",
"src/layers/buffer_validation.cpp", "src/layers/buffer_validation.cpp",
"src/layers/buffer_validation.h", "src/layers/buffer_validation.h",
"src/layers/core_dispatch.cpp",
"src/layers/core_validation.cpp", "src/layers/core_validation.cpp",
"src/layers/core_validation.h", "src/layers/core_validation.h",
"src/layers/convert_to_renderpass2.cpp", "src/layers/convert_to_renderpass2.cpp",
...@@ -368,9 +367,9 @@ chassis_deps = [ ...@@ -368,9 +367,9 @@ chassis_deps = [
layers = [ layers = [
[ [
"core_validation", "core_validation",
core_validation_sources, core_validation_sources + chassis_sources,
core_validation_deps, core_validation_deps + chassis_deps,
[], [ "BUILD_CORE_VALIDATION" ],
], ],
[ [
"object_lifetimes", "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