From 01db75635ada36356719bb894bb1c8d207386b00 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Thu, 17 Feb 2022 10:34:17 -0800 Subject: [PATCH] Revert "anv: Require the local heap for CCS on XeHP" This reverts commit 382f6ccda8869f72134dbfa9c3cc68a229e01138. The spec requires that all color images created with the same tiling (and a few other properties) support the same memoryTypeBits. So this wasn't a valid change. It also wasn't necessary - we already have a mechanism in anv_BindImageMemory2 for disabling compression if the BO doesn't support it. With this, XeHP passes the tests in dEQP-VK.memory.requirements.*tiling_optimal Fixes: 382f6ccd ("anv: Require the local heap for CCS on XeHP") Reviewed-by: Lionel Landwerlin Part-of: (cherry picked from commit dc05615ec175cc4630291a2f1cc21ccda6cd08e1) --- .pick_status.json | 2 +- src/intel/vulkan/anv_image.c | 21 +++------------------ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index affe1cc4f7e..51908e94c99 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -841,7 +841,7 @@ "description": "Revert \"anv: Require the local heap for CCS on XeHP\"", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "382f6ccda8869f72134dbfa9c3cc68a229e01138" }, diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 755adf2f2dd..a43da30ab07 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -1580,25 +1580,10 @@ anv_image_get_memory_requirements(struct anv_device *device, * supported memory type for the resource. The bit `1<physical->memory.type_count; i++) { - const uint32_t heap_index = device->physical->memory.types[i].heapIndex; - - bool memory_type_supported = true; - u_foreach_bit(b, aspects) { - VkImageAspectFlagBits aspect = 1 << b; - const uint32_t plane = anv_image_aspect_to_plane(image, aspect); - - if (device->info.verx10 >= 125 && - isl_aux_usage_has_ccs(image->planes[plane].aux_usage) && - !device->physical->memory.heaps[heap_index].is_local_mem) - memory_type_supported = false; - } - - if (memory_type_supported) - memory_types |= 1 << i; - } + uint32_t memory_types = (1ull << device->physical->memory.type_count) - 1; vk_foreach_struct(ext, pMemoryRequirements->pNext) { switch (ext->sType) {