[PR #931] [MERGED] graphics_pipeline: Move some depth configuration to dynamic state #1836

Closed
opened 2026-02-27 21:14:08 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/931
Author: @raphaelthegreat
Created: 9/15/2024
Status: Merged
Merged: 9/15/2024
Merged by: @psucien

Base: mainHead: key


📝 Commits (10+)

  • 585c81c graphics_pipeline: More proper masking
  • 38a7098 pipeline_cache: Skip setting depth/stencil fields when test is disabled
  • f01d075 pipeline_cache: More fixes to depth stencil state
  • 2cf31a3 vk_rasterizer: Use dynamic state for depth bounds and bias
  • a93b830 pipeline_cache: Missed depth bias enable
  • 3e8455f vk_rasterizer: Add stencil dynamic states
  • a89c79d thread: Reduce spammy log
  • e88d1bf Remove some leftover state
  • 3b074f0 pipeline_cache: Allocate pipelines from pools
  • 8b231f5 vk_graphics_pipeline: Remove bindings member

📊 Changes

7 files changed (+99 additions, -82 deletions)

View changed files

📝 src/core/libraries/kernel/thread_management.cpp (+1 -1)
📝 src/video_core/amdgpu/liverpool.h (+10 -0)
📝 src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp (+17 -26)
📝 src/video_core/renderer_vulkan/vk_graphics_pipeline.h (+4 -12)
📝 src/video_core/renderer_vulkan/vk_pipeline_cache.cpp (+26 -41)
📝 src/video_core/renderer_vulkan/vk_pipeline_cache.h (+4 -2)
📝 src/video_core/renderer_vulkan/vk_rasterizer.cpp (+37 -0)

📄 Description

Some of these depth/stencil states can change very significantly between frames even and cased a lot of unnecessary pipeline recompilation. Move them to dynamic state to solve this (these states are supported by Vulkan 1.0 so should be good compatibility wise)


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/shadps4-emu/shadPS4/pull/931 **Author:** [@raphaelthegreat](https://github.com/raphaelthegreat) **Created:** 9/15/2024 **Status:** ✅ Merged **Merged:** 9/15/2024 **Merged by:** [@psucien](https://github.com/psucien) **Base:** `main` ← **Head:** `key` --- ### 📝 Commits (10+) - [`585c81c`](https://github.com/shadps4-emu/shadPS4/commit/585c81cc9571ccb67d7c16d63d0875a52f695e83) graphics_pipeline: More proper masking - [`38a7098`](https://github.com/shadps4-emu/shadPS4/commit/38a7098de3801b9132d15b37bd3315be79c8b4b1) pipeline_cache: Skip setting depth/stencil fields when test is disabled - [`f01d075`](https://github.com/shadps4-emu/shadPS4/commit/f01d075dacd86f1a8cf081b8b4c90d645b415b89) pipeline_cache: More fixes to depth stencil state - [`2cf31a3`](https://github.com/shadps4-emu/shadPS4/commit/2cf31a3f5a1806a93dd6b099a8c3c0eb4002bf91) vk_rasterizer: Use dynamic state for depth bounds and bias - [`a93b830`](https://github.com/shadps4-emu/shadPS4/commit/a93b830f0417ed345e6dd2643eb79673cc5bcd50) pipeline_cache: Missed depth bias enable - [`3e8455f`](https://github.com/shadps4-emu/shadPS4/commit/3e8455f3595aa2c66c4483d95f8aaee37c216d64) vk_rasterizer: Add stencil dynamic states - [`a89c79d`](https://github.com/shadps4-emu/shadPS4/commit/a89c79d3cfabf802e91bbe3eb60f92f4fd75d6e4) thread: Reduce spammy log - [`e88d1bf`](https://github.com/shadps4-emu/shadPS4/commit/e88d1bfd0dd389e84e4857ccf3fc6409e809db43) Remove some leftover state - [`3b074f0`](https://github.com/shadps4-emu/shadPS4/commit/3b074f07e66a5d05166d902220fa9363d20a1694) pipeline_cache: Allocate pipelines from pools - [`8b231f5`](https://github.com/shadps4-emu/shadPS4/commit/8b231f53f98f7ca599a7449815c04e7100e2daad) vk_graphics_pipeline: Remove bindings member ### 📊 Changes **7 files changed** (+99 additions, -82 deletions) <details> <summary>View changed files</summary> 📝 `src/core/libraries/kernel/thread_management.cpp` (+1 -1) 📝 `src/video_core/amdgpu/liverpool.h` (+10 -0) 📝 `src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp` (+17 -26) 📝 `src/video_core/renderer_vulkan/vk_graphics_pipeline.h` (+4 -12) 📝 `src/video_core/renderer_vulkan/vk_pipeline_cache.cpp` (+26 -41) 📝 `src/video_core/renderer_vulkan/vk_pipeline_cache.h` (+4 -2) 📝 `src/video_core/renderer_vulkan/vk_rasterizer.cpp` (+37 -0) </details> ### 📄 Description Some of these depth/stencil states can change very significantly between frames even and cased a lot of unnecessary pipeline recompilation. Move them to dynamic state to solve this (these states are supported by Vulkan 1.0 so should be good compatibility wise) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 21:14:08 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#1836
No description provided.