renderer_vulkan: Simplify depth pipeline state and move stencil to dynamic state. #1854
+49
−35
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.
First of some changes I'm planning to cut down on pipeline key complexity, reducing the potential pipeline permutations needed.
This change moves the remaining stencil test configuration state (front/back face stencil ops) to dynamic state, using
VK_EXT_extended_dynamic_state
which we already require and is included as part of any Vulkan 1.3 driver. With that out of the way, it also cuts down the amount of depth state that can change the key by replacing the full depth control register data with just a couple of flags still needed to toggle different depth/stencil tests.