anv: fix multi level clears with VK_REMAINING_MIP_LEVELS
authorLionel Landwerlin <llandwerlin@gmail.com>
Mon, 14 Nov 2016 17:26:09 +0000 (17:26 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Mon, 14 Nov 2016 17:40:58 +0000 (17:40 +0000)
A commit from the CTS suite on the 1.0-dev branch started using
VK_REMAINING_MIP_LEVELS, we're not dealing with it properly for clears.

Fixes:
   dEQP-VK.api.image_clearing.clear_color_image.*

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
src/intel/vulkan/anv_blorp.c

index b78c21d..d59c1a7 100644 (file)
@@ -803,7 +803,7 @@ void anv_CmdClearColorImage(
       unsigned base_layer = pRanges[r].baseArrayLayer;
       unsigned layer_count = pRanges[r].layerCount;
 
-      for (unsigned i = 0; i < pRanges[r].levelCount; i++) {
+      for (unsigned i = 0; i < anv_get_levelCount(image, &pRanges[r]); i++) {
          const unsigned level = pRanges[r].baseMipLevel + i;
          const unsigned level_width = anv_minify(image->extent.width, level);
          const unsigned level_height = anv_minify(image->extent.height, level);
@@ -863,7 +863,7 @@ void anv_CmdClearDepthStencilImage(
       unsigned base_layer = pRanges[r].baseArrayLayer;
       unsigned layer_count = pRanges[r].layerCount;
 
-      for (unsigned i = 0; i < pRanges[r].levelCount; i++) {
+      for (unsigned i = 0; i < anv_get_levelCount(image, &pRanges[r]); i++) {
          const unsigned level = pRanges[r].baseMipLevel + i;
          const unsigned level_width = anv_minify(image->extent.width, level);
          const unsigned level_height = anv_minify(image->extent.height, level);