mirror of
https://github.com/Kbz-8/Pulse.git
synced 2026-01-11 23:43:34 +00:00
yes
This commit is contained in:
@@ -29,12 +29,12 @@ PulseBuffer VulkanCreateBuffer(PulseDevice device, const PulseBufferCreateInfo*
|
||||
|
||||
if(buffer->usage & PULSE_BUFFER_USAGE_TRANSFER_UPLOAD)
|
||||
{
|
||||
vulkan_buffer->usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
|
||||
vulkan_buffer->usage |= VK_BUFFER_USAGE_TRANSFER_DST_BIT;
|
||||
allocation_create_info.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;
|
||||
}
|
||||
if(buffer->usage & PULSE_BUFFER_USAGE_TRANSFER_DOWNLOAD)
|
||||
{
|
||||
vulkan_buffer->usage |= VK_BUFFER_USAGE_TRANSFER_DST_BIT;
|
||||
vulkan_buffer->usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
|
||||
allocation_create_info.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;
|
||||
}
|
||||
if(buffer->usage & PULSE_INTERNAL_BUFFER_USAGE_UNIFORM_ACCESS)
|
||||
@@ -57,8 +57,9 @@ PulseBuffer VulkanCreateBuffer(PulseDevice device, const PulseBufferCreateInfo*
|
||||
return buffer;
|
||||
}
|
||||
|
||||
bool VulkanMapBuffer(PulseBuffer buffer, void** data)
|
||||
bool VulkanMapBuffer(PulseBuffer buffer, PulseMapMode mode, void** data)
|
||||
{
|
||||
PULSE_UNUSED(mode);
|
||||
VulkanBuffer* vulkan_buffer = VULKAN_RETRIEVE_DRIVER_DATA_AS(buffer, VulkanBuffer*);
|
||||
VulkanDevice* vulkan_device = VULKAN_RETRIEVE_DRIVER_DATA_AS(buffer->device, VulkanDevice*);
|
||||
CHECK_VK_RETVAL(buffer->device->backend, vmaMapMemory(vulkan_device->allocator, vulkan_buffer->allocation, data), PULSE_ERROR_MAP_FAILED, false);
|
||||
|
||||
@@ -23,7 +23,7 @@ typedef struct VulkanBuffer
|
||||
} VulkanBuffer;
|
||||
|
||||
PulseBuffer VulkanCreateBuffer(PulseDevice device, const PulseBufferCreateInfo* create_infos);
|
||||
bool VulkanMapBuffer(PulseBuffer buffer, void** data);
|
||||
bool VulkanMapBuffer(PulseBuffer buffer, PulseMapMode mode, void** data);
|
||||
void VulkanUnmapBuffer(PulseBuffer buffer);
|
||||
bool VulkanCopyBufferToBuffer(PulseCommandList cmd, const PulseBufferRegion* src, const PulseBufferRegion* dst);
|
||||
bool VulkanCopyBufferToImage(PulseCommandList cmd, const PulseBufferRegion* src, const PulseImageRegion* dst);
|
||||
|
||||
@@ -109,7 +109,7 @@ bool VulkanSubmitCommandList(PulseDevice device, PulseCommandList cmd, PulseFenc
|
||||
default: break;
|
||||
}
|
||||
|
||||
VkFence vulkan_fence;
|
||||
VkFence vulkan_fence = VK_NULL_HANDLE;
|
||||
if(fence != PULSE_NULL_HANDLE)
|
||||
{
|
||||
vulkan_fence = VULKAN_RETRIEVE_DRIVER_DATA_AS(fence, VkFence);
|
||||
@@ -132,7 +132,10 @@ bool VulkanSubmitCommandList(PulseDevice device, PulseCommandList cmd, PulseFenc
|
||||
submit_info.commandBufferCount = 1;
|
||||
submit_info.pCommandBuffers = &vulkan_cmd->cmd;
|
||||
res = vulkan_device->vkQueueSubmit(vulkan_queue->queue, 1, &submit_info, vulkan_fence);
|
||||
cmd->state = PULSE_COMMAND_LIST_STATE_SENT;
|
||||
if(fence != PULSE_NULL_HANDLE)
|
||||
cmd->state = PULSE_COMMAND_LIST_STATE_SENT;
|
||||
else
|
||||
cmd->state = PULSE_COMMAND_LIST_STATE_READY;
|
||||
switch(res)
|
||||
{
|
||||
case VK_SUCCESS: return true;
|
||||
|
||||
@@ -93,10 +93,7 @@ bool VulkanWaitForFences(PulseDevice device, const PulseFence* fences, uint32_t
|
||||
free(vulkan_fences);
|
||||
switch(result)
|
||||
{
|
||||
case VK_SUCCESS:
|
||||
for(uint32_t i = 0; i < fences_count; i++)
|
||||
fences[i]->cmd->state = PULSE_COMMAND_LIST_STATE_READY;
|
||||
break;
|
||||
case VK_SUCCESS: break;
|
||||
case VK_TIMEOUT: break;
|
||||
|
||||
case VK_ERROR_DEVICE_LOST: PulseSetInternalError(PULSE_ERROR_DEVICE_LOST); return false;
|
||||
|
||||
Reference in New Issue
Block a user