anv/clear: Handle ClearImage on 3-D images
[mesa.git] / src / intel / vulkan / anv_meta.c
index 683a1623cc3d3d5ebe2f3c4f70fd9a6884b18bca..1ac0306e0315e483fce6a91e15df4c38f625812e 100644 (file)
@@ -138,27 +138,6 @@ anv_device_init_meta(struct anv_device *device)
       .pfnFree = meta_free,
    };
 
-   const VkDescriptorPoolCreateInfo create_info = {
-      .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
-      .pNext = NULL,
-      .flags = 0,
-      .maxSets = 1,
-      .poolSizeCount = 1,
-      .pPoolSizes = (VkDescriptorPoolSize[]) {
-         {
-            .type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
-            .descriptorCount = 1
-         },
-      }
-   };
-
-   result = anv_CreateDescriptorPool(anv_device_to_handle(device),
-                                     &create_info,
-                                     &device->meta_state.alloc,
-                                     &device->meta_state.desc_pool);
-   if (result != VK_SUCCESS)
-      goto fail_desc_pool;
-
    result = anv_device_init_meta_clear_state(device);
    if (result != VK_SUCCESS)
       goto fail_clear;
@@ -171,17 +150,19 @@ anv_device_init_meta(struct anv_device *device)
    if (result != VK_SUCCESS)
       goto fail_blit;
 
+   result = anv_device_init_meta_blit2d_state(device);
+   if (result != VK_SUCCESS)
+      goto fail_blit2d;
+
    return VK_SUCCESS;
 
+fail_blit2d:
+   anv_device_finish_meta_blit_state(device);
 fail_blit:
    anv_device_finish_meta_resolve_state(device);
 fail_resolve:
    anv_device_finish_meta_clear_state(device);
 fail_clear:
-   anv_DestroyDescriptorPool(anv_device_to_handle(device),
-                             device->meta_state.desc_pool,
-                             &device->meta_state.alloc);
-fail_desc_pool:
    return result;
 }
 
@@ -191,4 +172,5 @@ anv_device_finish_meta(struct anv_device *device)
    anv_device_finish_meta_resolve_state(device);
    anv_device_finish_meta_clear_state(device);
    anv_device_finish_meta_blit_state(device);
+   anv_device_finish_meta_blit2d_state(device);
 }