[Mesa-dev] [PATCH 1/7] radv/winsys: request high address

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri May 18 16:00:43 UTC 2018


This is needed for 32-bit GPU pointers. Ported from RadeonSI.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
index 8ed3e53e2d..442940eb43 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
@@ -38,6 +38,9 @@
 
 #include "util/u_atomic.h"
 
+#ifndef AMDGPU_VA_RANGE_HIGH
+#define AMDGPU_VA_RANGE_HIGH   0x2
+#endif
 
 static void radv_amdgpu_winsys_bo_destroy(struct radeon_winsys_bo *_bo);
 
@@ -306,7 +309,8 @@ radv_amdgpu_winsys_bo_create(struct radeon_winsys *_ws,
 	}
 
 	r = amdgpu_va_range_alloc(ws->dev, amdgpu_gpu_va_range_general,
-				  size, alignment, 0, &va, &va_handle, 0);
+				  size, alignment, 0, &va, &va_handle,
+				  AMDGPU_VA_RANGE_HIGH);
 	if (r)
 		goto error_va_alloc;
 
@@ -424,7 +428,8 @@ radv_amdgpu_winsys_bo_from_ptr(struct radeon_winsys *_ws,
 		goto error;
 
 	if (amdgpu_va_range_alloc(ws->dev, amdgpu_gpu_va_range_general,
-	                          size, 1 << 12, 0, &va, &va_handle, 0))
+	                          size, 1 << 12, 0, &va, &va_handle,
+				  AMDGPU_VA_RANGE_HIGH))
 		goto error_va_alloc;
 
 	if (amdgpu_bo_va_op(buf_handle, 0, size, va, 0, AMDGPU_VA_OP_MAP))
@@ -480,7 +485,8 @@ radv_amdgpu_winsys_bo_from_fd(struct radeon_winsys *_ws,
 		goto error_query;
 
 	r = amdgpu_va_range_alloc(ws->dev, amdgpu_gpu_va_range_general,
-				  result.alloc_size, 1 << 20, 0, &va, &va_handle, 0);
+				  result.alloc_size, 1 << 20, 0, &va, &va_handle,
+				  AMDGPU_VA_RANGE_HIGH);
 	if (r)
 		goto error_query;
 
-- 
2.17.0



More information about the mesa-dev mailing list