Skip to content
Snippets Groups Projects

Resolve "Cmd/Sync-Rework"

Merged Ghost User requested to merge 66-cmd-sync-rework into develop
1 file
+ 22
19
Compare changes
  • Side-by-side
  • Inline
@@ -79,9 +79,6 @@ int main(int argc, const char** argv) {
// an example attachment for passes that output to the window
const vkcv::AttachmentDescription present_color_attachment(
vkcv::AttachmentLayout::UNDEFINED,
vkcv::AttachmentLayout::COLOR_ATTACHMENT,
vkcv::AttachmentLayout::PRESENTATION,
vkcv::AttachmentOperation::STORE,
vkcv::AttachmentOperation::CLEAR,
core.getSwapchainImageFormat());
@@ -103,21 +100,21 @@ int main(int argc, const char** argv) {
const vkcv::PipelineConfig trianglePipelineDefinition(
triangleShaderProgram,
windowWidth,
windowHeight,
(uint32_t)windowWidth,
(uint32_t)windowHeight,
trianglePass,
{},
{});
{},
false);
vkcv::PipelineHandle trianglePipeline = core.createGraphicsPipeline(trianglePipelineDefinition);
if (!trianglePipeline)
{
std::cout << "Error. Could not create graphics pipeline. Exiting." << std::endl;
return EXIT_FAILURE;
}
std::vector<vkcv::VertexBufferBinding> vertexBufferBindings;
/*
* BufferHandle triangleVertices = core.createBuffer(vertices);
* BufferHandle triangleIndices = core.createBuffer(indices);
@@ -133,10 +130,15 @@ int main(int argc, const char** argv) {
*
* PipelineHandle trianglePipeline = core.CreatePipeline(trianglePipeline);
*/
auto start = std::chrono::system_clock::now();
auto start = std::chrono::system_clock::now();
vkcv::ImageHandle swapchainImageHandle = vkcv::ImageHandle::createSwapchainImageHandle();
const vkcv::Mesh renderMesh({}, triangleIndexBuffer.getVulkanHandle(), 3);
vkcv::DrawcallInfo drawcall(renderMesh, {});
const vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle();
while (window.isWindowOpen())
{
window.pollEvents();
@@ -147,17 +149,18 @@ int main(int argc, const char** argv) {
cameraManager.getCamera().updateView(std::chrono::duration<double>(deltatime).count());
const glm::mat4 mvp = cameraManager.getCamera().getProjection() * cameraManager.getCamera().getView();
core.recordDrawcallsToCmdStream(
vkcv::PushConstantData pushConstantData((void*)&mvp, sizeof(glm::mat4));
auto cmdStream = core.createCommandStream(vkcv::QueueType::Graphics);
core.recordDrawcallsToCmdStream(
cmdStream,
trianglePass,
trianglePipeline,
sizeof(mvp),
&mvp,
vertexBufferBindings,
triangleIndexBuffer.getHandle(),
3,
vkcv::DescriptorSetHandle(),
0,
{swapchainImageHandle});
pushConstantData,
{ drawcall },
{ swapchainInput });
core.prepareSwapchainImageForPresent(cmdStream);
core.submitCommandStream(cmdStream);
core.endFrame();
}
Loading