Fix a number of asserts hit by latest tests Test: dEQP-VK.pipeline.*.device_index_as_view_index.* Test: dEQP-VK.image.host_image_copy.*_remaining_layers Change-Id: Ifd223265430903f3bb139e46721cb231ceaa0e00 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/75568 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by: Shahbaz Youssefi <syoussefi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/Device/Context.cpp b/src/Device/Context.cpp index ee753ba..3d289f9 100644 --- a/src/Device/Context.cpp +++ b/src/Device/Context.cpp
@@ -1317,6 +1317,7 @@ ~(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT | VK_PIPELINE_CREATE_DERIVATIVE_BIT | VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT | + VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT | VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT | VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT | VK_PIPELINE_CREATE_LIBRARY_BIT_KHR |
diff --git a/src/Vulkan/VkImage.cpp b/src/Vulkan/VkImage.cpp index cc17cf7..6e0a0e5 100644 --- a/src/Vulkan/VkImage.cpp +++ b/src/Vulkan/VkImage.cpp
@@ -645,7 +645,9 @@ VkDeviceSize srcLayerSize = memoryIsSource ? memorySlicePitchBytes : imageLayerSize; VkDeviceSize dstLayerSize = memoryIsSource ? imageLayerSize : memorySlicePitchBytes; - for(uint32_t i = 0; i < imageSubresource.layerCount; i++) + const uint32_t layerCount = imageSubresource.layerCount == VK_REMAINING_ARRAY_LAYERS ? + arrayLayers - imageSubresource.baseArrayLayer : imageSubresource.layerCount; + for(uint32_t i = 0; i < layerCount; i++) { const uint8_t *srcLayerMemory = srcMemory; uint8_t *dstLayerMemory = dstMemory;
diff --git a/src/Vulkan/VkPhysicalDevice.cpp b/src/Vulkan/VkPhysicalDevice.cpp index 09562eb..3276759 100644 --- a/src/Vulkan/VkPhysicalDevice.cpp +++ b/src/Vulkan/VkPhysicalDevice.cpp
@@ -691,7 +691,6 @@ case VK_STRUCTURE_TYPE_MAX_ENUM: // TODO(b/176893525): This may not be legal. dEQP tests that this value is ignored. break; default: - UNSUPPORTED("curExtension->sType: %s", vk::Stringify(curExtension->sType).c_str()); break; } curExtension = reinterpret_cast<VkBaseOutStructure *>(curExtension->pNext);