diff options
author | Andres Rodriguez <[email protected]> | 2017-10-20 18:42:12 -0400 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2017-10-21 01:15:49 +0200 |
commit | eff2bdbd8272ceec723dcc1643dd3d5f77020d1f (patch) | |
tree | 8f3511478c858ac922ccb37a2f21ab5f5cf90f5b /src | |
parent | 92724338ba2db433f99f4017a18d2ee4f6601d6c (diff) |
radv: factor out radv_alloc_memory
This allows us to pass extra parameters to the memory allocation
operation that are not defined in the vulkan spec. This is useful for
internal usage.
Signed-off-by: Andres Rodriguez <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/amd/vulkan/radv_device.c | 19 | ||||
-rw-r--r-- | src/amd/vulkan/radv_private.h | 11 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 3748d51488f..5e6e9dcdb58 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -2048,11 +2048,11 @@ bool radv_get_memory_fd(struct radv_device *device, pFD); } -VkResult radv_AllocateMemory( - VkDevice _device, - const VkMemoryAllocateInfo* pAllocateInfo, - const VkAllocationCallbacks* pAllocator, - VkDeviceMemory* pMem) +VkResult radv_alloc_memory(VkDevice _device, + const VkMemoryAllocateInfo* pAllocateInfo, + const VkAllocationCallbacks* pAllocator, + enum radv_mem_flags_bits mem_flags, + VkDeviceMemory* pMem) { RADV_FROM_HANDLE(radv_device, device, _device); struct radv_device_memory *mem; @@ -2134,6 +2134,15 @@ fail: return result; } +VkResult radv_AllocateMemory( + VkDevice _device, + const VkMemoryAllocateInfo* pAllocateInfo, + const VkAllocationCallbacks* pAllocator, + VkDeviceMemory* pMem) +{ + return radv_alloc_memory(_device, pAllocateInfo, pAllocator, 0, pMem); +} + void radv_FreeMemory( VkDevice _device, VkDeviceMemory _mem, diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 47a068b5597..a4e52b25306 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -106,6 +106,11 @@ enum radv_mem_type { RADV_MEM_TYPE_COUNT }; +enum radv_mem_flags_bits { + /* enable implicit synchronization when accessing the underlying bo */ + RADV_MEM_IMPLICIT_SYNC = 1 << 0, +}; + #define radv_printflike(a, b) __attribute__((__format__(__printf__, a, b))) static inline uint32_t @@ -946,6 +951,12 @@ void radv_cmd_buffer_trace_emit(struct radv_cmd_buffer *cmd_buffer); bool radv_get_memory_fd(struct radv_device *device, struct radv_device_memory *memory, int *pFD); +VkResult radv_alloc_memory(VkDevice _device, + const VkMemoryAllocateInfo* pAllocateInfo, + const VkAllocationCallbacks* pAllocator, + enum radv_mem_flags_bits flags, + VkDeviceMemory* pMem); + /* * Takes x,y,z as exact numbers of invocations, instead of blocks. * |