Changeset 2f4ff8c in opengl-game for sdl-game.cpp
- Timestamp:
- Jun 20, 2021, 7:05:14 PM (4 years ago)
- Branches:
- feature/imgui-sdl
- Children:
- b01b50c
- Parents:
- 90880fb
- git-author:
- Dmitry Portnoy <dportnoy@…> (06/18/21 16:39:49)
- git-committer:
- Dmitry Portnoy <dportnoy@…> (06/20/21 19:05:14)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sdl-game.cpp
r90880fb r2f4ff8c 70 70 , gui(nullptr) 71 71 , window(nullptr) 72 , vp_mats_modelPipeline()72 , uniforms_modelPipeline() 73 73 , objects_modelPipeline() 74 74 , score(0) … … 93 93 vkGetPhysicalDeviceProperties(physicalDevice, &deviceProperties); 94 94 95 vp_mats_modelPipeline = VulkanBuffer<UBO_VP_mats>(1, deviceProperties.limits.maxUniformBufferRange,96 deviceProperties.limits.minUniformBufferOffsetAlignment);95 uniforms_modelPipeline = VulkanBuffer<UBO_VP_mats>(1, deviceProperties.limits.maxUniformBufferRange, 96 deviceProperties.limits.minUniformBufferOffsetAlignment); 97 97 98 98 objects_modelPipeline = VulkanBuffer<SSBO_ModelObject>(10, deviceProperties.limits.maxStorageBufferRange, … … 114 114 modelPipeline.addAttribute(VK_FORMAT_R32_UINT, offset_of(&ModelVertex::objIndex)); 115 115 116 createBufferSet( vp_mats_modelPipeline.memorySize(),116 createBufferSet(uniforms_modelPipeline.memorySize(), 117 117 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, 118 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,118 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, 119 119 uniformBuffers_modelPipeline); 120 121 uniforms_modelPipeline.map(uniformBuffers_modelPipeline.memory, device); 120 122 121 123 createBufferSet(objects_modelPipeline.memorySize(), 122 124 VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT 123 125 | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, 124 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,126 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, 125 127 storageBuffers_modelPipeline); 128 129 objects_modelPipeline.map(storageBuffers_modelPipeline.memory, device); 126 130 127 131 modelPipeline.addDescriptorInfo(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, … … 445 449 446 450 void VulkanGame::updateScene() { 447 vp_mats_modelPipeline.data()->view = viewMat;448 vp_mats_modelPipeline.data()->proj = projMat;451 uniforms_modelPipeline.data()->view = viewMat; 452 uniforms_modelPipeline.data()->proj = projMat; 449 453 450 454 // TODO: Probably move the resizing to the VulkanBuffer class's add() method … … 453 457 454 458 if (objects_modelPipeline.resized) { 459 objects_modelPipeline.unmap(storageBuffers_modelPipeline.memory, device); 460 455 461 resizeBufferSet(storageBuffers_modelPipeline, objects_modelPipeline.memorySize(), resourceCommandPool, 456 462 graphicsQueue, true); 463 464 objects_modelPipeline.map(storageBuffers_modelPipeline.memory, device); 457 465 458 466 objects_modelPipeline.resize(); … … 474 482 } 475 483 476 VulkanUtils::copyDataToMemory(device, vp_mats_modelPipeline.data(), uniformBuffers_modelPipeline.memory[imageIndex], 477 0, vp_mats_modelPipeline.memorySize(), false); 478 479 VulkanUtils::copyDataToMemory(device, objects_modelPipeline.data(), storageBuffers_modelPipeline.memory[imageIndex], 480 0, objects_modelPipeline.memorySize(), false); 484 VulkanUtils::copyDataToMappedMemory(device, uniforms_modelPipeline.data(), uniforms_modelPipeline.mapped(imageIndex), 485 uniformBuffers_modelPipeline.memory[imageIndex], 486 uniforms_modelPipeline.memorySize(), true); 487 488 VulkanUtils::copyDataToMappedMemory(device, objects_modelPipeline.data(), objects_modelPipeline.mapped(imageIndex), 489 storageBuffers_modelPipeline.memory[imageIndex], 490 objects_modelPipeline.memorySize(), true); 481 491 } 482 492 … … 1282 1292 createSyncObjects(); 1283 1293 1284 createBufferSet( vp_mats_modelPipeline.memorySize(),1294 createBufferSet(uniforms_modelPipeline.memorySize(), 1285 1295 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, 1286 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,1296 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, 1287 1297 uniformBuffers_modelPipeline); 1298 1299 uniforms_modelPipeline.map(uniformBuffers_modelPipeline.memory, device); 1288 1300 1289 1301 createBufferSet(objects_modelPipeline.memorySize(), 1290 1302 VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT 1291 1303 | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, 1292 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,1304 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, 1293 1305 storageBuffers_modelPipeline); 1306 1307 objects_modelPipeline.map(storageBuffers_modelPipeline.memory, device); 1294 1308 1295 1309 modelPipeline.updateRenderPass(renderPass); … … 1315 1329 modelPipeline.cleanup(); 1316 1330 1331 uniforms_modelPipeline.unmap(uniformBuffers_modelPipeline.memory, device); 1332 1317 1333 for (size_t i = 0; i < uniformBuffers_modelPipeline.buffers.size(); i++) { 1318 1334 vkDestroyBuffer(device, uniformBuffers_modelPipeline.buffers[i], nullptr); 1319 1335 vkFreeMemory(device, uniformBuffers_modelPipeline.memory[i], nullptr); 1320 1336 } 1337 1338 objects_modelPipeline.unmap(storageBuffers_modelPipeline.memory, device); 1321 1339 1322 1340 for (size_t i = 0; i < storageBuffers_modelPipeline.buffers.size(); i++) {
Note:
See TracChangeset
for help on using the changeset viewer.