Commit Graph
9660 Commits
Author SHA1 Message Date
Henrik Rydgård 116d91fcaa Viewport-scissor dirty state cleanup 2026-05-30 19:07:59 +02:00
Henrik Rydgård 0e8ba0d6fe Bugfixes, cleanup 2026-05-30 19:07:59 +02:00
Henrik Rydgård e75d9f8a5f Unify the bounding depth checks, correct them if minmax clip is needed 2026-05-30 19:07:59 +02:00
Henrik Rydgård 0eede05f5f Implement fragment shader depth clamp and min/max discard. Slow on some hardware, but it's a fallback. 2026-05-30 19:07:59 +02:00
Henrik Rydgård 66fd3e65d8 Remove some redundant function parameters 2026-05-30 19:07:59 +02:00
Henrik Rydgård de266c3d6c Add the appropriate epsilons to cull distance. Fixes the NBA issue.
It's a bit odd that this draw doesn't go through software transform
though.
2026-05-30 19:07:59 +02:00
Henrik Rydgård 0b47955c64 Delete geometry shader culling support. Is mostly replaced, and will be fully replaced with software transform. 2026-05-30 19:07:59 +02:00
Henrik Rydgård d849db6be5 Buildfix, remove redundant variable 2026-05-30 19:07:59 +02:00
Henrik Rydgård 5ad24adc93 Cleanup, increase the max cull count. Flatout water works now. 2026-05-30 19:07:59 +02:00
Henrik Rydgård 3599c4002b Through mode draws should not be min/max tested 2026-05-30 19:07:59 +02:00
Henrik Rydgård 9979d5544d Round off Z for the min/max tests. Gets both Test Drive map and Wipeout Pure shadows working at the same time.. 2026-05-30 19:07:59 +02:00
Henrik Rydgård eaacbbc226 D3D and OpenGL shader buildfixes 2026-05-30 19:07:59 +02:00
Henrik Rydgård 058b1af285 Revert to software on out-of-bounds projected depth 2026-05-30 19:07:59 +02:00
Henrik Rydgård 86efaeee7e Increase the minimum vertex count for checking fast-cull. This fixes #10914 in hardware transform (by forwarding to software) 2026-05-30 19:07:59 +02:00
Henrik Rydgård 86f9618cb9 Fallback to software transform if draw intersects -W<Z<W 2026-05-30 19:07:59 +02:00
Henrik Rydgård 5eb114d3d9 Put more useful data in BoundingDepths. Slightly more costly. 2026-05-30 19:07:59 +02:00
Henrik Rydgård 49557580e9 disable debug colors 2026-05-30 19:07:59 +02:00
Henrik Rydgård 8b84fd555d Apply triangle near-clipping in software transform.
Fixes, but only in SW transform, #10914

Re-enable range culling, oops.
2026-05-30 19:07:59 +02:00
Henrik Rydgård 280ddbf86c Remove state from SoftwareTransform class 2026-05-30 19:07:59 +02:00
Henrik Rydgård 5cc2f71038 Software transform: More Z clamping updates 2026-05-30 19:07:59 +02:00
Henrik Rydgård 83dcd24043 Small SIMD optimization in software transform 2026-05-30 19:07:59 +02:00
Henrik Rydgård d60d190236 Implement depth clamp (for safe cases) in the software transform pipeline, and make sure triangle culling is always done. 2026-05-30 19:07:59 +02:00
Henrik Rydgård a6b146b74b Some work on software transform 2026-05-30 19:07:59 +02:00
Henrik Rydgård b9ef43f4de VertexShaderGenerator work 2026-05-30 19:07:59 +02:00
Henrik Rydgård 36f5664c5e Re-enable cull distance in vertex shader, fix some test errors 2026-05-30 19:07:58 +02:00
Henrik Rydgård b1723086be Plumb through depth information (although not yet always generated) 2026-05-30 19:07:58 +02:00
Henrik Rydgård f55adcc3a1 Apply a small depth bias to simulate rounding of Z. Fix min/max clip plane math 2026-05-30 19:07:58 +02:00
Henrik Rydgård 08f4c8fae8 Compute min/max Z and W from the culling loop, use to cull some more 2026-05-30 19:07:58 +02:00
Henrik Rydgård f0d715feaa During culling, evaluate minZ,maxZ,minW,maxW, and use them to cull some things. Also, assorted vshader work. 2026-05-30 19:07:58 +02:00
Henrik Rydgård 5808afef10 Implement minZ/maxZ through user clip planes 2026-05-30 19:07:58 +02:00
Henrik Rydgård 2f73bea7f0 Correct Z in through mode, add another check to range culling 2026-05-30 19:07:58 +02:00
Henrik Rydgård 490469c4e6 Re-implement range culling 2026-05-30 19:07:58 +02:00
Henrik Rydgård ae98055cec Delete a lot of legacy depth and viewport code, fix OpenGL 2026-05-30 19:07:58 +02:00
Henrik Rydgård d3543e16b3 Simplify line expansion 2026-05-30 19:07:58 +02:00
Henrik Rydgård 62d8cf22de Move the viewport transform to software in SW transform mode
transform fix
2026-05-30 19:07:58 +02:00
Henrik Rydgård 5aedd2f1e3 Hardware transform seems to work, software transform still has issues 2026-05-30 19:07:58 +02:00
Henrik Rydgård 69c7c75124 Replace u_proj_through with a simple scale/offset
First reasonable output appears.
2026-05-30 19:07:58 +02:00
Henrik Rydgård 2233fd9f13 Minor simplification 2026-05-30 19:07:58 +02:00
Henrik Rydgård f60e27a9b7 Just some refactoring of the GPUStatistics struct, and more use of StringWriter 2026-05-29 14:40:31 +02:00
Henrik Rydgård 886d9c255b D3D11: Improve compilation error reporting 2026-05-28 10:55:29 +02:00
Henrik Rydgård b65bbaf92c Merge pull request #21678 from nintendo424/gpu-save-first-frame
gpu: Preserve first-frame font render targets
2026-05-27 12:22:47 +02:00
Henrik Rydgård 5513fcb223 Merge pull request #21705 from GermanAizek/constexpr-cpp17
GPU: modernize use C++17 constexpr for precalculate compilation
2026-05-27 12:21:39 +02:00
Henrik Rydgård db99de8575 Rename BuildDrawParams to ProjectClipAndExpand, call it directly from Transform 2026-05-26 16:05:53 +02:00
Henrik Rydgård 9ad9a6c0bb DrawEngines: Move the clear-detection to a more sensible place, reorder things to make more sense. 2026-05-26 16:05:53 +02:00
Henrik Rydgård 06a7793f57 Fix some y-flip issues in D3D11. It got broken by recent refactorings.
Fixes #21726
2026-05-26 15:51:24 +02:00
Henrik Rydgård 4be2a853b7 FastCull: Integrate the vertex position loading into the culling loop 2026-05-25 18:16:34 +02:00
Henrik Rydgård 82a888fd8e Reimplement the fast culling using CrossSIMD 2026-05-25 18:16:34 +02:00
Henrik Rydgård 250abe0d56 Loongarch64 build fixes 2026-05-25 15:41:24 +02:00
Henrik Rydgård 37f6fda9c9 Add a CrossSIMD loongarch64 LSX implementation. Note: This is untested! 2026-05-25 15:40:22 +02:00
Henrik Rydgård 4a55fc6724 Prepare TestBoundingBoxFast for optimization 2026-05-25 13:37:27 +02:00