summaryrefslogtreecommitdiff
path: root/src/entities.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-01-29 20:07:31 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-01-29 20:07:31 -0500
commit2adb5f008c289d533d1d2310d7fade2206153144 (patch)
treeca3eafb1e0e20459e76e28e93042a64318e2d012 /src/entities.cpp
parent4c241454f5698de3e6a5be07feb22ce930d63002 (diff)
pke: refactor: reduce image resource var ambiguity
Diffstat (limited to 'src/entities.cpp')
-rw-r--r--src/entities.cpp134
1 files changed, 66 insertions, 68 deletions
diff --git a/src/entities.cpp b/src/entities.cpp
index ae9e8b4..446e80a 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -379,6 +379,7 @@ void EntityType_PreLoad(EntityType_LoadHelperStruct &helper) {
}
void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t index) {
+ PKVK_TmpBufferDetails tmpBufferDetails{};
EntityTypeDetails_LoadHelperStruct &etdHelper = (*helper.etdHelpers)[index];
int32_t pixelWidth, pixelHeight, pixelChannels;
@@ -458,11 +459,8 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
vkCreateImageView(vkDevice, &vkImageViewCreateInfo, vkAllocator, &etdHelper.etd->textureImageView);
// transition image layout and copy to buffer
- VkBuffer transferImageBuffer;
- VkDeviceMemory transferImageMemory;
- void *deviceData;
- BeginTransferBuffer(imageSizeBytes, transferImageBuffer, transferImageMemory, deviceData);
- memcpy(deviceData, pixels, imageSizeBytes);
+ PKVK_BeginBuffer(transferFamilyIndex, imageSizeBytes, tmpBufferDetails);
+ memcpy(tmpBufferDetails.deviceData, pixels, imageSizeBytes);
{
VkImageMemoryBarrier vkImageMemoryBarrier;
vkImageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
@@ -490,9 +488,9 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
vkCommandBufferBeginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
vkCommandBufferBeginInfo.pInheritanceInfo = nullptr;
- vkBeginCommandBuffer(transferCommandBuffer, &vkCommandBufferBeginInfo);
+ vkBeginCommandBuffer(tmpBufferDetails.cmdBuffer, &vkCommandBufferBeginInfo);
- vkCmdPipelineBarrier(transferCommandBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 0, nullptr, 1, &vkImageMemoryBarrier);
+ vkCmdPipelineBarrier(tmpBufferDetails.cmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 0, nullptr, 1, &vkImageMemoryBarrier);
// TODO animated textures / texture array - make this an array
VkBufferImageCopy vkBufferImageCopy;
@@ -516,9 +514,9 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
.height = static_cast<uint32_t>(pixelHeight),
.depth = 1,
};
- vkCmdCopyBufferToImage(transferCommandBuffer, transferImageBuffer, etdHelper.etd->textureImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &vkBufferImageCopy);
+ vkCmdCopyBufferToImage(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->textureImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &vkBufferImageCopy);
- vkEndCommandBuffer(transferCommandBuffer);
+ vkEndCommandBuffer(tmpBufferDetails.cmdBuffer);
VkSubmitInfo submitInfo;
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
@@ -527,14 +525,15 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
submitInfo.pWaitSemaphores = nullptr;
submitInfo.pWaitDstStageMask = nullptr;
submitInfo.commandBufferCount = 1;
- submitInfo.pCommandBuffers = &transferCommandBuffer;
+ submitInfo.pCommandBuffers = &tmpBufferDetails.cmdBuffer;
submitInfo.signalSemaphoreCount = 0;
submitInfo.pSignalSemaphores = nullptr;
- vkQueueSubmit(transferQueue, 1, &submitInfo, nullptr);
- vkQueueWaitIdle(transferQueue);
- vkResetCommandBuffer(transferCommandBuffer, 0);
+ vkQueueSubmit(tmpBufferDetails.queue, 1, &submitInfo, nullptr);
+ vkQueueWaitIdle(tmpBufferDetails.queue);
+ vkResetCommandBuffer(tmpBufferDetails.cmdBuffer, 0);
}
- EndTransferBuffer(transferImageBuffer, transferImageMemory);
+ PKVK_EndBuffer(tmpBufferDetails);
+ PKVK_BeginBuffer(graphicsFamilyIndex, 0, tmpBufferDetails);
{
VkImageMemoryBarrier vkImageMemoryBarrier;
vkImageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
@@ -562,11 +561,11 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
vkCommandBufferBeginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
vkCommandBufferBeginInfo.pInheritanceInfo = nullptr;
- vkBeginCommandBuffer(graphicsCommandBuffer, &vkCommandBufferBeginInfo);
+ vkBeginCommandBuffer(tmpBufferDetails.cmdBuffer, &vkCommandBufferBeginInfo);
- vkCmdPipelineBarrier(graphicsCommandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0, 0, nullptr, 0, nullptr, 1, &vkImageMemoryBarrier);
+ vkCmdPipelineBarrier(tmpBufferDetails.cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0, 0, nullptr, 0, nullptr, 1, &vkImageMemoryBarrier);
- vkEndCommandBuffer(graphicsCommandBuffer);
+ vkEndCommandBuffer(tmpBufferDetails.cmdBuffer);
VkSubmitInfo submitInfo;
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
@@ -575,12 +574,14 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
submitInfo.pWaitSemaphores = nullptr;
submitInfo.pWaitDstStageMask = nullptr;
submitInfo.commandBufferCount = 1;
- submitInfo.pCommandBuffers = &graphicsCommandBuffer;
+ submitInfo.pCommandBuffers = &tmpBufferDetails.cmdBuffer;
submitInfo.signalSemaphoreCount = 0;
submitInfo.pSignalSemaphores = nullptr;
- vkQueueSubmit(graphicsQueue, 1, &submitInfo, nullptr);
- vkQueueWaitIdle(graphicsQueue);
+ vkQueueSubmit(tmpBufferDetails.queue, 1, &submitInfo, nullptr);
+ vkQueueWaitIdle(tmpBufferDetails.queue);
+ vkResetCommandBuffer(tmpBufferDetails.cmdBuffer, 0);
}
+ PKVK_EndBuffer(tmpBufferDetails);
// TODO double-check this?
if (etdHelper.textureAssetHandle != AssetHandle_MAX) {
@@ -671,7 +672,7 @@ void EntityType_LoadTexture(EntityType_LoadHelperStruct &helper, const int64_t i
}
void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t meshIndex) {
-
+ PKVK_TmpBufferDetails tmpBufferDetails{};
EntityTypeDetails_LoadHelperStruct &etdHelper = (*helper.etdHelpers)[meshIndex];
// create and bind buffers
@@ -768,28 +769,25 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
// create transfer items && transfer
{
- VkDeviceMemory transferDeviceMemory;
- VkBuffer transferBuffer;
- void *data;
- BeginTransferBuffer(helper.vertMemoryRequirementsCombined.size, transferBuffer, transferDeviceMemory, data);
- memset(data, '\0', helper.vertMemoryRequirementsCombined.size);
+ PKVK_BeginBuffer(transferFamilyIndex, helper.vertMemoryRequirementsCombined.size, tmpBufferDetails);
+ memset(tmpBufferDetails.deviceData, '\0', helper.vertMemoryRequirementsCombined.size);
char *dstPtr = nullptr;
char *srcPtr = nullptr;
- dstPtr = static_cast<char *>(data) + offsetVert;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + offsetVert;
srcPtr = static_cast<char *>(helper.modelBinAsset->ptr) + accVert.buffer_view->offset;
memcpy(dstPtr, srcPtr, accVert.buffer_view->size);
- dstPtr = static_cast<char *>(data) + offsetNorm;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + offsetNorm;
srcPtr = static_cast<char *>(helper.modelBinAsset->ptr) + accNorm.buffer_view->offset;
memcpy(dstPtr, srcPtr, accNorm.buffer_view->size);
- dstPtr = static_cast<char *>(data) + offsetUV;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + offsetUV;
srcPtr = static_cast<char *>(helper.modelBinAsset->ptr) + accUV.buffer_view->offset;
memcpy(dstPtr, srcPtr, accUV.buffer_view->size);
- dstPtr = static_cast<char *>(data) + offsetIndex;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + offsetIndex;
srcPtr = static_cast<char *>(helper.modelBinAsset->ptr) + accIndex.buffer_view->offset;
memcpy(dstPtr, srcPtr, accIndex.buffer_view->size);
@@ -799,7 +797,7 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
// TODO consider single-use?
vkCommandBufferBeginInfo.flags = 0;
vkCommandBufferBeginInfo.pInheritanceInfo = nullptr;
- vkBeginCommandBuffer(transferCommandBuffer, &vkCommandBufferBeginInfo);
+ vkBeginCommandBuffer(tmpBufferDetails.cmdBuffer, &vkCommandBufferBeginInfo);
VkBufferCopy bufferCopys[expectedBufferCount];
for (long i = 0; i < expectedBufferCount; ++i) {
bufferCopys[i].dstOffset = 0;
@@ -807,25 +805,25 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
index = 0;
bufferCopys[index].srcOffset = offsetVert;
bufferCopys[index].size = sizeVert;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->vertexBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->vertexBD.buffer, 1, &bufferCopys[index]);
index+=1;
bufferCopys[index].srcOffset = offsetNorm;
bufferCopys[index].size = sizeNorm;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->normalsBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->normalsBD.buffer, 1, &bufferCopys[index]);
index+=1;
bufferCopys[index].srcOffset = offsetUV;
bufferCopys[index].size = sizeUV;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->uvBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->uvBD.buffer, 1, &bufferCopys[index]);
index+=1;
bufferCopys[index].srcOffset = offsetIndex;
bufferCopys[index].size = sizeIndex;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->indexBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->indexBD.buffer, 1, &bufferCopys[index]);
// index+=1;
- vkEndCommandBuffer(transferCommandBuffer);
+ vkEndCommandBuffer(tmpBufferDetails.cmdBuffer);
VkSubmitInfo submitInfo;
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
@@ -834,13 +832,13 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
submitInfo.pWaitSemaphores = nullptr;
submitInfo.pWaitDstStageMask = nullptr;
submitInfo.commandBufferCount = 1;
- submitInfo.pCommandBuffers = &transferCommandBuffer;
+ submitInfo.pCommandBuffers = &tmpBufferDetails.cmdBuffer;
submitInfo.signalSemaphoreCount = 0;
submitInfo.pSignalSemaphores = nullptr;
- vkQueueSubmit(transferQueue, 1, &submitInfo, nullptr);
- vkQueueWaitIdle(transferQueue);
+ vkQueueSubmit(tmpBufferDetails.queue, 1, &submitInfo, nullptr);
+ vkQueueWaitIdle(tmpBufferDetails.queue);
- EndTransferBuffer(transferBuffer, transferDeviceMemory);
+ PKVK_EndBuffer(tmpBufferDetails);
}
// set up instance buffer
@@ -921,32 +919,29 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
// create transfer items && transfer
{
- VkDeviceMemory transferDeviceMemory;
- VkBuffer transferBuffer;
- void *data;
- BeginTransferBuffer(helper.physVertMemoryRequirementsCombined.size, transferBuffer, transferDeviceMemory, data);
- memset(data, '\0', helper.physVertMemoryRequirementsCombined.size);
+ PKVK_BeginBuffer(transferFamilyIndex, helper.physVertMemoryRequirementsCombined.size, tmpBufferDetails);
+ memset(tmpBufferDetails.deviceData, '\0', helper.physVertMemoryRequirementsCombined.size);
runningOffset = 0;
char *dstPtr = nullptr;
char *srcPtr = nullptr;
- dstPtr = static_cast<char *>(data) + runningOffset;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + runningOffset;
srcPtr = reinterpret_cast<char *>(etdHelper.physDbg.vertexes->GetPtr());
memcpy(dstPtr, srcPtr, sizeVert);
runningOffset += sizeVert;
- dstPtr = static_cast<char *>(data) + runningOffset;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + runningOffset;
srcPtr = reinterpret_cast<char *>(etdHelper.physDbg.normals->GetPtr());
memcpy(dstPtr, srcPtr, sizeNorm);
runningOffset += sizeNorm;
- dstPtr = static_cast<char *>(data) + runningOffset;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + runningOffset;
srcPtr = reinterpret_cast<char *>(etdHelper.physDbg.uv->GetPtr());
memcpy(dstPtr, srcPtr, sizeUV);
runningOffset += sizeUV;
- dstPtr = static_cast<char *>(data) + runningOffset;
+ dstPtr = static_cast<char *>(tmpBufferDetails.deviceData) + runningOffset;
srcPtr = reinterpret_cast<char *>(etdHelper.physDbg.indexes->GetPtr());
memcpy(dstPtr, srcPtr, sizeIndex);
@@ -956,7 +951,7 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
// TODO consider single-use?
vkCommandBufferBeginInfo.flags = 0;
vkCommandBufferBeginInfo.pInheritanceInfo = nullptr;
- vkBeginCommandBuffer(transferCommandBuffer, &vkCommandBufferBeginInfo);
+ vkBeginCommandBuffer(tmpBufferDetails.cmdBuffer, &vkCommandBufferBeginInfo);
VkBufferCopy bufferCopys[expectedBufferCount];
for (long i = 0; i < expectedBufferCount; ++i) {
bufferCopys[i].dstOffset = 0;
@@ -965,29 +960,29 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
runningOffset = 0;
bufferCopys[index].srcOffset = runningOffset;
bufferCopys[index].size = sizeVert;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->physVertBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->physVertBD.buffer, 1, &bufferCopys[index]);
runningOffset += sizeVert;
index+=1;
bufferCopys[index].srcOffset = runningOffset;
bufferCopys[index].size = sizeNorm;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->physNormBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->physNormBD.buffer, 1, &bufferCopys[index]);
runningOffset += sizeNorm;
index+=1;
bufferCopys[index].srcOffset = runningOffset;
bufferCopys[index].size = sizeUV;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->physUvBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->physUvBD.buffer, 1, &bufferCopys[index]);
runningOffset += sizeUV;
index+=1;
bufferCopys[index].srcOffset = runningOffset;
bufferCopys[index].size = sizeIndex;
- vkCmdCopyBuffer(transferCommandBuffer, transferBuffer, etdHelper.etd->grBinds->physIndxBD.buffer, 1, &bufferCopys[index]);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, etdHelper.etd->grBinds->physIndxBD.buffer, 1, &bufferCopys[index]);
// runningOffset += sizeIndex;
// index+=1;
- vkEndCommandBuffer(transferCommandBuffer);
+ vkEndCommandBuffer(tmpBufferDetails.cmdBuffer);
VkSubmitInfo submitInfo;
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
@@ -996,13 +991,13 @@ void EntityType_LoadMesh(EntityType_LoadHelperStruct &helper, const int64_t mesh
submitInfo.pWaitSemaphores = nullptr;
submitInfo.pWaitDstStageMask = nullptr;
submitInfo.commandBufferCount = 1;
- submitInfo.pCommandBuffers = &transferCommandBuffer;
+ submitInfo.pCommandBuffers = &tmpBufferDetails.cmdBuffer;
submitInfo.signalSemaphoreCount = 0;
submitInfo.pSignalSemaphores = nullptr;
- vkQueueSubmit(transferQueue, 1, &submitInfo, nullptr);
- vkQueueWaitIdle(transferQueue);
+ vkQueueSubmit(tmpBufferDetails.queue, 1, &submitInfo, nullptr);
+ vkQueueWaitIdle(tmpBufferDetails.queue);
- EndTransferBuffer(transferBuffer, transferDeviceMemory);
+ PKVK_EndBuffer(tmpBufferDetails);
}
}
}
@@ -1240,6 +1235,7 @@ void EntityType_Tick_Late(double delta) {
}
void EntityType_RolloverInstances(EntityType &et, CompGrBinds &grBinds) {
+ PKVK_TmpBufferDetails tmpBufferDetails{};
int32_t oldCount = grBinds.instanceBufferMaxCount;
int32_t newCount = std::ceil(grBinds.instanceBufferMaxCount * 1.5);
newCount = newCount < 4 ? 4 : newCount;
@@ -1273,8 +1269,9 @@ void EntityType_RolloverInstances(EntityType &et, CompGrBinds &grBinds) {
vkBindBufferMemory(vkDevice, grBinds.instanceBD.buffer, et.deviceMemoryInst, 0);
// copy data
+ PKVK_BeginBuffer(graphicsFamilyIndex, 0, tmpBufferDetails);
{
- vkResetCommandBuffer(graphicsCommandBuffer, 0);
+ vkResetCommandBuffer(tmpBufferDetails.cmdBuffer, 0);
VkBufferMemoryBarrier memBarriers[2];
for (long i = 0; i < 2; ++i) {
memBarriers[i].sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
@@ -1304,16 +1301,16 @@ void EntityType_RolloverInstances(EntityType &et, CompGrBinds &grBinds) {
vkCommandBufferBeginInfo.flags = 0;
vkCommandBufferBeginInfo.pInheritanceInfo = nullptr;
- vkBeginCommandBuffer(graphicsCommandBuffer, &vkCommandBufferBeginInfo);
- vkCmdPipelineBarrier(graphicsCommandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 2, memBarriers, 0, nullptr);
+ vkBeginCommandBuffer(tmpBufferDetails.cmdBuffer, &vkCommandBufferBeginInfo);
+ vkCmdPipelineBarrier(tmpBufferDetails.cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 2, memBarriers, 0, nullptr);
VkBufferCopy vkBufferCopy;
vkBufferCopy.srcOffset = 0;
vkBufferCopy.dstOffset = 0;
vkBufferCopy.size = oldSize;
- vkCmdCopyBuffer(graphicsCommandBuffer, oldBuffer, grBinds.instanceBD.buffer, 1, &vkBufferCopy);
+ vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, oldBuffer, grBinds.instanceBD.buffer, 1, &vkBufferCopy);
- vkEndCommandBuffer(graphicsCommandBuffer);
+ vkEndCommandBuffer(tmpBufferDetails.cmdBuffer);
VkSubmitInfo submitInfo;
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
@@ -1322,13 +1319,14 @@ void EntityType_RolloverInstances(EntityType &et, CompGrBinds &grBinds) {
submitInfo.pWaitSemaphores = nullptr;
submitInfo.pWaitDstStageMask = nullptr;
submitInfo.commandBufferCount = 1;
- submitInfo.pCommandBuffers = &graphicsCommandBuffer;
+ submitInfo.pCommandBuffers = &tmpBufferDetails.cmdBuffer;
submitInfo.signalSemaphoreCount = 0;
submitInfo.pSignalSemaphores = nullptr;
- vkQueueSubmit(graphicsQueue, 1, &submitInfo, nullptr);
- vkQueueWaitIdle(graphicsQueue);
- vkResetCommandBuffer(graphicsCommandBuffer, 0);
+ vkQueueSubmit(tmpBufferDetails.queue, 1, &submitInfo, nullptr);
+ vkQueueWaitIdle(tmpBufferDetails.queue);
+ vkResetCommandBuffer(tmpBufferDetails.cmdBuffer, 0);
}
+ PKVK_EndBuffer(tmpBufferDetails);
// cleanup
vkDestroyBuffer(vkDevice, oldBuffer, vkAllocator);