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