feat: make pipeline, pipeline layout, and descriptor abstraction#17
Open
gituser12981u2 wants to merge 6 commits into
Open
feat: make pipeline, pipeline layout, and descriptor abstraction#17gituser12981u2 wants to merge 6 commits into
gituser12981u2 wants to merge 6 commits into
Conversation
Collaborator
|
I hope I fixed the GCC/MSVC issues, apple strikes again. Was a minor patch to help me review. |
Owner
Author
Thanks chap. |
alexcu2718
reviewed
Jun 22, 2026
|
|
||
| namespace quark::vk::details { | ||
|
|
||
| struct DescriptorSetLayoutHandleTag; |
Collaborator
There was a problem hiding this comment.
Gonna be having FactoryFactories soon bro.
alexcu2718
reviewed
Jun 22, 2026
|
|
||
| for (const DescriptorBindingDesc &binding : ci.desc.bindings) { | ||
| QUARK_ENSURE( | ||
| binding.type != VK_DESCRIPTOR_TYPE_MAX_ENUM, |
Collaborator
There was a problem hiding this comment.
Love this TYPE_MAX_ENUM
alexcu2718
reviewed
Jun 22, 2026
| quark_backend_vulkan_pipeline STATIC | ||
| graphics_pipeline_bundle.cpp graphics_pipeline_registry.cpp | ||
| graphics_pipeline.cpp pipeline.cpp pipeline_layout.cpp) | ||
| graphics_pipeline.cpp graphics_pipeline_registry.cpp pipeline.cpp |
alexcu2718
reviewed
Jun 22, 2026
| return out; | ||
| } | ||
| util::Status GraphicsPipeline::create(const CreateInfo &ci) { | ||
| QUARK_ENSURE(ci.desc != nullptr, QUARK_ERR(util::Errc::InvalidArg, |
Collaborator
There was a problem hiding this comment.
I like the use of the abstraction,
alexcu2718
reviewed
Jun 22, 2026
| layout_.destroy(); | ||
| GraphicsPipelineView GraphicsPipeline::view() const noexcept { | ||
| return GraphicsPipelineView{ | ||
| .handle = handle_, |
alexcu2718
approved these changes
Jun 22, 2026
alexcu2718
left a comment
Collaborator
There was a problem hiding this comment.
Overall I think it's berry good, maybe even a strawberry.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Made abstractions for pipeline, pipeline layout, and descriptor.
graphics pipeline (combination of pipeline and pipeline layout) and pipeline layout have their own registries and the graphics pipeline registry takes in a pipeline and pipeline layout into the registry slot.
Triangle renderer also got updated to use the abstraction.
I didn't abstract somethings yet, like VkPushConstants, even though these should be abstracted eventually.