Only call updateBorders on ranges that can be cubemaps.
Bug: dawn:283
Change-Id: I8abd042ce1cb1a278d77b6639aeda650630963a8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/41328
Tested-by: Corentin Wallez <cwallez@google.com>
Kokoro-Presubmit: Corentin Wallez <cwallez@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkImage.cpp b/src/Vulkan/VkImage.cpp
index d538733..82b0c53 100644
--- a/src/Vulkan/VkImage.cpp
+++ b/src/Vulkan/VkImage.cpp
@@ -990,11 +990,14 @@
subresourceRange.baseArrayLayer,
6
};
+
+ // Update the borders of all the groups of 6 layers that can be part of a cubemaps but don't
+ // touch leftover layers that cannot be part of cubemaps.
uint32_t lastMipLevel = getLastMipLevel(subresourceRange);
for(; subresourceLayers.mipLevel <= lastMipLevel; subresourceLayers.mipLevel++)
{
for(subresourceLayers.baseArrayLayer = 0;
- subresourceLayers.baseArrayLayer < arrayLayers;
+ subresourceLayers.baseArrayLayer < arrayLayers - 5;
subresourceLayers.baseArrayLayer += 6)
{
device->getBlitter()->updateBorders(decompressedImage ? decompressedImage : this, subresourceLayers);