diff options
author | Jason Ekstrand <[email protected]> | 2020-04-21 16:31:25 -0500 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-05-12 18:01:48 +0000 |
commit | 51c6bc13ce3a70b1948ce5c4edbc1d29c5460986 (patch) | |
tree | 73d0629796332d4fd80c205bb755f919124a7f12 /src/intel/vulkan | |
parent | d76e722ed63607ecead2c66ef9f3a37a12b62bab (diff) |
anv,vulkan: Implement VK_EXT_private_data
Reviewed-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4882>
Diffstat (limited to 'src/intel/vulkan')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 52 | ||||
-rw-r--r-- | src/intel/vulkan/anv_extensions.py | 1 |
2 files changed, 53 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 49553b0b2aa..993fa06de98 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1237,6 +1237,12 @@ void anv_GetPhysicalDeviceFeatures2( break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: { + VkPhysicalDevicePrivateDataFeaturesEXT *features = (void *)ext; + features->privateData = true; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: { VkPhysicalDeviceProtectedMemoryFeatures *features = (void *)ext; CORE_FEATURE(1, 1, protectedMemory); @@ -4511,3 +4517,49 @@ vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pSupportedVersion) *pSupportedVersion = MIN2(*pSupportedVersion, 4u); return VK_SUCCESS; } + +VkResult anv_CreatePrivateDataSlotEXT( + VkDevice _device, + const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlotEXT* pPrivateDataSlot) +{ + ANV_FROM_HANDLE(anv_device, device, _device); + return vk_private_data_slot_create(&device->vk, pCreateInfo, pAllocator, + pPrivateDataSlot); +} + +void anv_DestroyPrivateDataSlotEXT( + VkDevice _device, + VkPrivateDataSlotEXT privateDataSlot, + const VkAllocationCallbacks* pAllocator) +{ + ANV_FROM_HANDLE(anv_device, device, _device); + vk_private_data_slot_destroy(&device->vk, privateDataSlot, pAllocator); +} + +VkResult anv_SetPrivateDataEXT( + VkDevice _device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t data) +{ + ANV_FROM_HANDLE(anv_device, device, _device); + return vk_object_base_set_private_data(&device->vk, + objectType, objectHandle, + privateDataSlot, data); +} + +void anv_GetPrivateDataEXT( + VkDevice _device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t* pData) +{ + ANV_FROM_HANDLE(anv_device, device, _device); + vk_object_base_get_private_data(&device->vk, + objectType, objectHandle, + privateDataSlot, pData); +} diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py index 3da10c724b9..bcc91fdf467 100644 --- a/src/intel/vulkan/anv_extensions.py +++ b/src/intel/vulkan/anv_extensions.py @@ -152,6 +152,7 @@ EXTENSIONS = [ Extension('VK_EXT_pci_bus_info', 2, True), Extension('VK_EXT_pipeline_creation_feedback', 1, True), Extension('VK_EXT_post_depth_coverage', 1, 'device->info.gen >= 9'), + Extension('VK_EXT_private_data', 1, True), Extension('VK_EXT_queue_family_foreign', 1, 'ANDROID'), Extension('VK_EXT_robustness2', 1, True), Extension('VK_EXT_sampler_filter_minmax', 1, 'device->info.gen >= 9'), |