Skip to content

Multiple renderpass/subpass support #8

@SpinnerX

Description

@SpinnerX

Renderpasses are core fundamentals for Vulkan or any computer graphics in general. One of the things that I am thinking about is how are multiple renderpasses executed.

I have seen fair examples for executing multiple renderpasses. They are relatively straight forward.

What I am wanting to look into more are other parameters involved extensively when doing render-passes, including flag and attachment configurations.

RenderPass Code Example (pseudo-code)

This code example is roughly how the renderpass would be executed, if we were to have multiple renderpass that focus in specific rendering operations that are expensive such as lighting, shadows, and other operations.

// create a final main renderpass
vk::renderpass geometry_pass = /*...*/;
vk::renderpass lighing_pass = /*...*/;
vk::renderpass shadow_pass = /*...*/;


// Executing these renderpass

// apply the geometry surface operations
geometry_pass.bind(...);

// apply lighting to normals for that specific surface
lighing_pass.bind(...);

// apply shadows using lighting to apply that onto the specific surface
shadow_pass.bind(...);

/* draw calls here afterwards to apply the renderpass attachment information */

Subpasses

Considering renderpass can have other sub-operations that are sub-passes operated under a single renderpass. These are something I need to consider in how we can specify multiple subpasses.

API Design

TBD

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions