Mesa (master): turnip: implement VK_EXT_private_data
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 14 03:38:04 UTC 2020
Module: Mesa
Branch: master
Commit: d941c6b74fefa97d2d4a1c522170312946d964ca
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d941c6b74fefa97d2d4a1c522170312946d964ca
Author: Hyunjun Ko <zzoon at igalia.com>
Date: Mon Jul 13 03:12:56 2020 +0000
turnip: implement VK_EXT_private_data
Which is using base class's implementation.
Signed-off-by: Hyunjun Ko <zzoon at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5539>
---
src/freedreno/vulkan/tu_device.c | 59 +++++++++++++++++++++++++++++++++++
src/freedreno/vulkan/tu_extensions.py | 1 +
2 files changed, 60 insertions(+)
diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index a893c3be148..7f0ac1fe499 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -762,6 +762,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
features->vertexAttributeInstanceRateZeroDivisor = true;
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: {
+ VkPhysicalDevicePrivateDataFeaturesEXT *features =
+ (VkPhysicalDevicePrivateDataFeaturesEXT *)ext;
+ features->privateData = true;
+ break;
+ }
default:
break;
}
@@ -2699,3 +2705,56 @@ void tu_GetPhysicalDeviceMultisamplePropertiesEXT(
else
pMultisampleProperties->maxSampleLocationGridSize = (VkExtent2D){ 0, 0 };
}
+
+
+VkResult
+tu_CreatePrivateDataSlotEXT(VkDevice _device,
+ const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
+ const VkAllocationCallbacks* pAllocator,
+ VkPrivateDataSlotEXT* pPrivateDataSlot)
+{
+ TU_FROM_HANDLE(tu_device, device, _device);
+ return vk_private_data_slot_create(&device->vk,
+ pCreateInfo,
+ pAllocator,
+ pPrivateDataSlot);
+}
+
+void
+tu_DestroyPrivateDataSlotEXT(VkDevice _device,
+ VkPrivateDataSlotEXT privateDataSlot,
+ const VkAllocationCallbacks* pAllocator)
+{
+ TU_FROM_HANDLE(tu_device, device, _device);
+ vk_private_data_slot_destroy(&device->vk, privateDataSlot, pAllocator);
+}
+
+VkResult
+tu_SetPrivateDataEXT(VkDevice _device,
+ VkObjectType objectType,
+ uint64_t objectHandle,
+ VkPrivateDataSlotEXT privateDataSlot,
+ uint64_t data)
+{
+ TU_FROM_HANDLE(tu_device, device, _device);
+ return vk_object_base_set_private_data(&device->vk,
+ objectType,
+ objectHandle,
+ privateDataSlot,
+ data);
+}
+
+void
+tu_GetPrivateDataEXT(VkDevice _device,
+ VkObjectType objectType,
+ uint64_t objectHandle,
+ VkPrivateDataSlotEXT privateDataSlot,
+ uint64_t* pData)
+{
+ TU_FROM_HANDLE(tu_device, device, _device);
+ vk_object_base_get_private_data(&device->vk,
+ objectType,
+ objectHandle,
+ privateDataSlot,
+ pData);
+}
diff --git a/src/freedreno/vulkan/tu_extensions.py b/src/freedreno/vulkan/tu_extensions.py
index 5bdc791be14..e2583afbe53 100644
--- a/src/freedreno/vulkan/tu_extensions.py
+++ b/src/freedreno/vulkan/tu_extensions.py
@@ -85,6 +85,7 @@ EXTENSIONS = [
Extension('VK_EXT_vertex_attribute_divisor', 1, True),
Extension('VK_KHR_shader_draw_parameters', 1, True),
Extension('VK_KHR_variable_pointers', 1, True),
+ Extension('VK_EXT_private_data', 1, True),
]
MAX_API_VERSION = VkVersion(MAX_API_VERSION)
More information about the mesa-commit
mailing list