Skip to content

Commit 2f16fa5

Browse files
Small fixes merge from v2.
1 parent 0a41b12 commit 2f16fa5

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/VulkanSample.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ static void CreateMesh()
288288
vbInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
289289
vbInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
290290
VmaMemoryRequirements vbMemReq = {};
291-
vbMemReq.usage = VMA_MEMORY_USAGE_CPU_TO_GPU;
291+
vbMemReq.usage = VMA_MEMORY_USAGE_CPU_ONLY;
292292
VkMappedMemoryRange stagingVertexBufferMem;
293293
VkBuffer stagingVertexBuffer = VK_NULL_HANDLE;
294294
ERR_GUARD_VULKAN( vmaCreateBuffer(g_hAllocator, &vbInfo, &vbMemReq, &stagingVertexBuffer, &stagingVertexBufferMem, nullptr) );
@@ -298,6 +298,8 @@ static void CreateMesh()
298298
memcpy(pVbData, vertices, vertexBufferSize);
299299
vmaUnmapMemory(g_hAllocator, &stagingVertexBufferMem);
300300

301+
// No need to flush stagingVertexBuffer memory because CPU_ONLY memory is always HOST_COHERENT.
302+
301303
vbInfo.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
302304
vbMemReq.usage = VMA_MEMORY_USAGE_GPU_ONLY;
303305
ERR_GUARD_VULKAN( vmaCreateBuffer(g_hAllocator, &vbInfo, &vbMemReq, &g_hVertexBuffer, nullptr, nullptr) );
@@ -309,7 +311,7 @@ static void CreateMesh()
309311
ibInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
310312
ibInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
311313
VmaMemoryRequirements ibMemReq = {};
312-
ibMemReq.usage = VMA_MEMORY_USAGE_CPU_TO_GPU;
314+
ibMemReq.usage = VMA_MEMORY_USAGE_CPU_ONLY;
313315
VkMappedMemoryRange stagingIndexBufferMem;
314316
VkBuffer stagingIndexBuffer = VK_NULL_HANDLE;
315317
ERR_GUARD_VULKAN( vmaCreateBuffer(g_hAllocator, &ibInfo, &ibMemReq, &stagingIndexBuffer, &stagingIndexBufferMem, nullptr) );
@@ -319,6 +321,8 @@ static void CreateMesh()
319321
memcpy(pIbData, indices, indexBufferSize);
320322
vmaUnmapMemory(g_hAllocator, &stagingIndexBufferMem);
321323

324+
// No need to flush stagingIndexBuffer memory because CPU_ONLY memory is always HOST_COHERENT.
325+
322326
ibInfo.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
323327
ibMemReq.usage = VMA_MEMORY_USAGE_GPU_ONLY;
324328
ERR_GUARD_VULKAN( vmaCreateBuffer(g_hAllocator, &ibInfo, &ibMemReq, &g_hIndexBuffer, nullptr, nullptr) );
@@ -469,7 +473,7 @@ static void CreateTexture(uint32_t sizeX, uint32_t sizeY)
469473
stagingImageInfo.samples = VK_SAMPLE_COUNT_1_BIT;
470474
stagingImageInfo.flags = 0;
471475
VmaMemoryRequirements stagingImageMemReq = {};
472-
stagingImageMemReq.usage = VMA_MEMORY_USAGE_CPU_TO_GPU;
476+
stagingImageMemReq.usage = VMA_MEMORY_USAGE_CPU_ONLY;
473477
VkImage stagingImage = VK_NULL_HANDLE;
474478
VkMappedMemoryRange stagingImageMem;
475479
ERR_GUARD_VULKAN( vmaCreateImage(g_hAllocator, &stagingImageInfo, &stagingImageMemReq, &stagingImage, &stagingImageMem, nullptr) );
@@ -504,6 +508,8 @@ static void CreateTexture(uint32_t sizeX, uint32_t sizeY)
504508

505509
vmaUnmapMemory(g_hAllocator, &stagingImageMem);
506510

511+
// No need to flush stagingImage memory because CPU_ONLY memory is always HOST_COHERENT.
512+
507513
VkImageCreateInfo imageInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO };
508514
imageInfo.imageType = VK_IMAGE_TYPE_2D;
509515
imageInfo.extent.width = sizeX;

0 commit comments

Comments
 (0)