Mesa (master): radv: Enable VK_KHR_buffer_device_address.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 26 12:29:13 UTC 2019


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

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Tue Nov 26 01:00:20 2019 +0100

radv: Enable VK_KHR_buffer_device_address.

Still no capture/replay or multi device support.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

---

 src/amd/vulkan/radv_device.c      | 27 ++++++++++++++++++++++++---
 src/amd/vulkan/radv_extensions.py |  1 +
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index a7997cf9c20..71b529c07a5 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -1058,6 +1058,14 @@ void radv_GetPhysicalDeviceFeatures2(
 			features->bufferDeviceAddressMultiDevice = false;
 			break;
 		}
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR: {
+			VkPhysicalDeviceBufferDeviceAddressFeaturesKHR *features =
+				(VkPhysicalDeviceBufferDeviceAddressFeaturesKHR *)ext;
+			features->bufferDeviceAddress = true;
+			features->bufferDeviceAddressCaptureReplay = false;
+			features->bufferDeviceAddressMultiDevice = false;
+			break;
+		}
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
 			VkPhysicalDeviceDepthClipEnableFeaturesEXT *features =
 				(VkPhysicalDeviceDepthClipEnableFeaturesEXT *)ext;
@@ -2687,7 +2695,8 @@ VkResult radv_CreateDevice(
 	device->use_global_bo_list =
 		(device->instance->perftest_flags & RADV_PERFTEST_BO_LIST) ||
 		device->enabled_extensions.EXT_descriptor_indexing ||
-		device->enabled_extensions.EXT_buffer_device_address;
+		device->enabled_extensions.EXT_buffer_device_address ||
+		device->enabled_extensions.KHR_buffer_device_address;
 
 	device->robust_buffer_access = pCreateInfo->pEnabledFeatures &&
 	                               pCreateInfo->pEnabledFeatures->robustBufferAccess;
@@ -5934,15 +5943,27 @@ void radv_DestroyBuffer(
 	vk_free2(&device->alloc, pAllocator, buffer);
 }
 
-VkDeviceAddress radv_GetBufferDeviceAddressEXT(
+VkDeviceAddress radv_GetBufferDeviceAddressKHR(
 	VkDevice                                    device,
-	const VkBufferDeviceAddressInfoEXT*         pInfo)
+	const VkBufferDeviceAddressInfoKHR*         pInfo)
 {
 	RADV_FROM_HANDLE(radv_buffer, buffer, pInfo->buffer);
 	return radv_buffer_get_va(buffer->bo) + buffer->offset;
 }
 
 
+uint64_t radv_GetBufferOpaqueCaptureAddressKHR(VkDevice device,
+					       const VkBufferDeviceAddressInfoKHR* pInfo)
+{
+	return 0;
+}
+
+uint64_t radv_GetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,
+						     const VkDeviceMemoryOpaqueCaptureAddressInfoKHR* pInfo)
+{
+	return 0;
+}
+
 static inline unsigned
 si_tile_mode_index(const struct radv_image_plane *plane, unsigned level, bool stencil)
 {
diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py
index 265383f1456..55d9ee9f817 100644
--- a/src/amd/vulkan/radv_extensions.py
+++ b/src/amd/vulkan/radv_extensions.py
@@ -54,6 +54,7 @@ EXTENSIONS = [
     Extension('VK_ANDROID_native_buffer',                 5, 'ANDROID && device->rad_info.has_syncobj_wait_for_submit'),
     Extension('VK_KHR_16bit_storage',                     1, '!device->use_aco'),
     Extension('VK_KHR_bind_memory2',                      1, True),
+    Extension('VK_KHR_buffer_device_address',             1, True),
     Extension('VK_KHR_create_renderpass2',                1, True),
     Extension('VK_KHR_dedicated_allocation',              1, True),
     Extension('VK_KHR_depth_stencil_resolve',             1, True),




More information about the mesa-commit mailing list