From ddff2fa5d0cbae17cb819c91bad0a79105ba0ea7 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Tue, 31 Jan 2023 21:16:16 +0100 Subject: Graphics pipeline rendering --- api-test/vk-device.cpp | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) (limited to 'api-test/vk-device.cpp') diff --git a/api-test/vk-device.cpp b/api-test/vk-device.cpp index 0815592..6967e41 100644 --- a/api-test/vk-device.cpp +++ b/api-test/vk-device.cpp @@ -330,9 +330,9 @@ handle vkdevice::create_pipeline(const pipeline_desc& desc) { .sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, .pNext = nullptr, .flags = 0U, - .viewportCount = 0U, + .viewportCount = 1U, .pViewports = nullptr, - .scissorCount = 0U, + .scissorCount = 1U, .pScissors = nullptr, }; @@ -349,6 +349,35 @@ handle vkdevice::create_pipeline(const pipeline_desc& desc) { .lineWidth = 1.f, }; + VkPipelineMultisampleStateCreateInfo multisample_state_create_info { + .sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, + .pNext = nullptr, + .flags = 0, + .rasterizationSamples = VK_SAMPLE_COUNT_1_BIT, + .sampleShadingEnable = VK_FALSE, + .minSampleShading = 1.f, + }; + + VkPipelineColorBlendAttachmentState color_attachment_state { + .blendEnable = VK_TRUE, + .srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA, + .dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, + .colorBlendOp = VK_BLEND_OP_ADD, + .srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE, + .dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, + .alphaBlendOp = VK_BLEND_OP_ADD, + .colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT, + }; + + VkPipelineColorBlendStateCreateInfo color_blend_state_create_info { + .sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, + .pNext = nullptr, + .flags = 0, + .logicOpEnable = VK_FALSE, + .attachmentCount = 1, + .pAttachments = &color_attachment_state, + }; + VkDynamicState dynamic_states[] { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, @@ -366,8 +395,8 @@ handle vkdevice::create_pipeline(const pipeline_desc& desc) { .sType = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO, .pNext = nullptr, .viewMask = 0U, - .colorAttachmentCount = 0U, - .pColorAttachmentFormats = nullptr, + .colorAttachmentCount = static_cast(desc.color_attachments_format.size()), + .pColorAttachmentFormats = desc.color_attachments_format.data(), .depthAttachmentFormat = VK_FORMAT_UNDEFINED, .stencilAttachmentFormat = VK_FORMAT_UNDEFINED, }; @@ -383,9 +412,9 @@ handle vkdevice::create_pipeline(const pipeline_desc& desc) { .pTessellationState = nullptr, .pViewportState = &viewport_state_create_info, .pRasterizationState = &rasterization_state_create_info, - .pMultisampleState = nullptr, + .pMultisampleState = &multisample_state_create_info, .pDepthStencilState = nullptr, - .pColorBlendState = nullptr, + .pColorBlendState = &color_blend_state_create_info, .pDynamicState = &dynamic_state_create_info, .layout = bindless.layout, .renderPass = nullptr, -- cgit v1.3