Mesa (master): v3dv: implement VK_EXT_private_data

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 18 00:00:51 UTC 2020


Module: Mesa
Branch: master
Commit: 3d1260aa919e3b87c589321ab4e4f4ee594787e3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d1260aa919e3b87c589321ab4e4f4ee594787e3

Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Thu Nov 12 16:35:31 2020 +0100

v3dv: implement VK_EXT_private_data

Which is using base class's implementation.

Based on Hyunjun's commit d941c6b74fefa97d2d4a1c522170312946d964ca

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7627>

---

 src/broadcom/vulkan/v3dv_device.c      | 59 ++++++++++++++++++++++++++++++++++
 src/broadcom/vulkan/v3dv_extensions.py |  1 +
 2 files changed, 60 insertions(+)

diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c
index 3bebb6ad4bb..78435021224 100644
--- a/src/broadcom/vulkan/v3dv_device.c
+++ b/src/broadcom/vulkan/v3dv_device.c
@@ -816,6 +816,13 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
 
    vk_foreach_struct(ext, pFeatures->pNext) {
       switch (ext->sType) {
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: {
+         VkPhysicalDevicePrivateDataFeaturesEXT *features =
+            (VkPhysicalDevicePrivateDataFeaturesEXT *)ext;
+         features->privateData = true;
+         break;
+      }
+
       default:
          v3dv_debug_ignored_stype(ext->sType);
          break;
@@ -2407,3 +2414,55 @@ vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pSupportedVersion)
    *pSupportedVersion = MIN2(*pSupportedVersion, 3u);
    return VK_SUCCESS;
 }
+
+VkResult
+v3dv_CreatePrivateDataSlotEXT(VkDevice _device,
+                            const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
+                            const VkAllocationCallbacks* pAllocator,
+                            VkPrivateDataSlotEXT* pPrivateDataSlot)
+{
+   V3DV_FROM_HANDLE(v3dv_device, device, _device);
+   return vk_private_data_slot_create(&device->vk,
+                                      pCreateInfo,
+                                      pAllocator,
+                                      pPrivateDataSlot);
+}
+
+void
+v3dv_DestroyPrivateDataSlotEXT(VkDevice _device,
+                             VkPrivateDataSlotEXT privateDataSlot,
+                             const VkAllocationCallbacks* pAllocator)
+{
+   V3DV_FROM_HANDLE(v3dv_device, device, _device);
+   vk_private_data_slot_destroy(&device->vk, privateDataSlot, pAllocator);
+}
+
+VkResult
+v3dv_SetPrivateDataEXT(VkDevice _device,
+                     VkObjectType objectType,
+                     uint64_t objectHandle,
+                     VkPrivateDataSlotEXT privateDataSlot,
+                     uint64_t data)
+{
+   V3DV_FROM_HANDLE(v3dv_device, device, _device);
+   return vk_object_base_set_private_data(&device->vk,
+                                          objectType,
+                                          objectHandle,
+                                          privateDataSlot,
+                                          data);
+}
+
+void
+v3dv_GetPrivateDataEXT(VkDevice _device,
+                     VkObjectType objectType,
+                     uint64_t objectHandle,
+                     VkPrivateDataSlotEXT privateDataSlot,
+                     uint64_t* pData)
+{
+   V3DV_FROM_HANDLE(v3dv_device, device, _device);
+   vk_object_base_get_private_data(&device->vk,
+                                   objectType,
+                                   objectHandle,
+                                   privateDataSlot,
+                                   pData);
+}
diff --git a/src/broadcom/vulkan/v3dv_extensions.py b/src/broadcom/vulkan/v3dv_extensions.py
index d7e4a94eb09..d59ce466043 100644
--- a/src/broadcom/vulkan/v3dv_extensions.py
+++ b/src/broadcom/vulkan/v3dv_extensions.py
@@ -74,6 +74,7 @@ EXTENSIONS = [
     Extension('VK_EXT_debug_report',                      9, True),
     Extension('VK_EXT_external_memory_dma_buf',           1, True),
     Extension('VK_EXT_image_drm_format_modifier',         1, False),
+    Extension('VK_EXT_private_data',                      1, True),
 ]
 
 # Sort the extension list the way we expect: KHR, then EXT, then vendors



More information about the mesa-commit mailing list