device wide staging buffer

This commit is contained in:
Gregory Wells
2025-07-09 16:21:00 -04:00
parent f6f856c1ec
commit 6ecaad4d7a
4 changed files with 44 additions and 44 deletions

View File

@@ -85,7 +85,15 @@ gnReturnCode createOutputDevice(gnOutputDeviceHandle outputDevice, gnInstanceHan
free(queueCreateInfos);
free(queueFamilies);
return GN_SUCCESS;
// create the massive staging buffer
outputDevice->outputDevice->stagingBufferSize = 128 * 1024 * 1024;
gnReturnCode code = VkCreateBuffer(
&outputDevice->outputDevice->stagingBuffer,
outputDevice->outputDevice->stagingBufferSize, outputDevice,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
VK_BUFFER_USAGE_TRANSFER_SRC_BIT
);
return code; // lowkey is a hack
}
void waitForDevice(const gnOutputDeviceHandle device) {
@@ -93,6 +101,7 @@ void waitForDevice(const gnOutputDeviceHandle device) {
}
void destroyOutputDevice(gnOutputDeviceHandle device) {
gnDestroyVulkanBuffer(&device->outputDevice->stagingBuffer, device->outputDevice->device);
vkDestroyCommandPool(device->outputDevice->device, device->outputDevice->transferCommandPool, NULL);
vkDestroyDevice(device->outputDevice->device, NULL);
free(device->outputDevice);