Skip to content

Switch DX12 pipeline creation to always use a stream descriptor #8341

@inner-daemons

Description

@inner-daemons

Is your feature request related to a problem? Please describe.
The CreateGraphicsPipelineState function works great for basic render pipelines, but for more advanced features such as mesh shaders (#8110) or multiview/view instancing (#8206), you must use a streaming descriptor. The streaming descriptor corresponds more or less to a vulkan pipeline descriptor with the state described in a pNext chain, allowing you to use all sorts of extensions.

#8110 added mesh shaders to DX12 backend, so mesh shader pipeline creation currently goes through a stream descriptor. Moreover, the logic in this PR can be easily extended standard render pipeline fields. We should make all render pipeline creation use this.

#8206 is a prime example. Otherwise identical render pipelines that want to render to multiple textures would have to take a completely different code path. Keeping the existing code path alive provides no benefits.

Describe the solution you'd like
Use the render pipeline creation from #8110 or similar.

Describe alternatives you've considered
Keep doing what we're doing and ignore these features.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions