anv/hasvk: speed up null image/view descriptor writes
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 2 Mar 2023 05:47:24 +0000 (07:47 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 2 Mar 2023 15:03:25 +0000 (15:03 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reported-by: Chuansheng Liu <chuansheng.liu@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21642>

src/intel/vulkan/anv_descriptor_set.c
src/intel/vulkan_hasvk/anv_descriptor_set.c

index 5cab178..84c2dc6 100644 (file)
@@ -1405,6 +1405,10 @@ anv_descriptor_set_write_image_view(struct anv_device *device,
    void *desc_map = set->desc_mem.map + bind_layout->descriptor_offset +
                     element * bind_layout->descriptor_stride;
    memset(desc_map, 0, bind_layout->descriptor_stride);
+
+   if (image_view == NULL && sampler == NULL)
+      return;
+
    enum anv_descriptor_data data =
       bind_layout->type == VK_DESCRIPTOR_TYPE_MUTABLE_EXT ?
       anv_descriptor_data_for_type(device->physical, type) :
index 69efed4..951aba8 100644 (file)
@@ -1400,6 +1400,10 @@ anv_descriptor_set_write_image_view(struct anv_device *device,
    void *desc_map = set->desc_mem.map + bind_layout->descriptor_offset +
                     element * bind_layout->descriptor_stride;
    memset(desc_map, 0, bind_layout->descriptor_stride);
+
+   if (image_view == NULL && sampler == NULL)
+      return;
+
    enum anv_descriptor_data data =
       bind_layout->type == VK_DESCRIPTOR_TYPE_MUTABLE_VALVE ?
       anv_descriptor_data_for_type(device->physical, type) :