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 <andresx7@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>tags/17.3-branchpoint
@@ -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, |
@@ -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. | |||
* |