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
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
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
b1723086be
Plumb through depth information (although not yet always generated)
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
ae98055cec
Delete a lot of legacy depth and viewport code, fix OpenGL
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
f60e27a9b7
Just some refactoring of the GPUStatistics struct, and more use of StringWriter
2026-05-29 14:40:31 +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
dd125b2e4d
Delete obsolete (and non-working) support for GPUs without non-pow-2 textures.
2026-05-24 14:15:34 +02:00
Henrik Rydgård
2eca0123f1
Correct culling in case of some weird viewport setups
2026-05-23 14:49:17 +02:00
Henrik Rydgård
0d33cd0a65
Convert the BBOX/BJUMP culling to use the worldviewproj matrix and a screen space check.
2026-05-23 14:40:15 +02:00
Henrik Rydgård
5cfbf50111
Keep updated products of view*proj and world*view*proj matrices. Use to simplify bbox culling.
2026-05-21 19:18:32 +02:00
Henrik Rydgård
4a420c95c2
Remove some redundant device caps, show clip/cull/depth-clamp in system info
2026-05-21 11:59:26 +02:00
nintendo424
e5689d1adc
gpu: Preserve first-frame font render targets
...
Some games render HLE sceFont glyphs into small VRAM-backed framebuffers and immediately sample them as textures. This needs both the source glyph buffer and the temporary render target to be preserved before later commands overwrite or rebind them.
Save first-frame data from the previous render target before creating a new framebuffer, since ResizeFramebufFBO() makes the new framebuffer current. Also flush pending draws before PGF writes over a glyph buffer that may still be referenced by queued texture draws.
Backend software transform normally reports safe framebuffer size during draw flush, but first-frame readback can happen before queued draws reach that path. Estimate through-mode rectangle/triangle bounds before SubmitPrim() and feed those bounds to SetSafeSize(), using actual vertices clamped to scissor instead of a tiny-target heuristic.
Fixes missing text in Evangelion JO.
2026-05-15 12:23:14 -04:00
Henrik Rydgård
0a1be41fa7
Additional fixes to ZipFileLoader
2026-03-08 12:33:46 +01:00
Henrik Rydgård
bae1a7c7f9
Add "FastEmulatedGPU" compat flag. For games like Outrun that have intermittent slowdowns on hardware, it's unnecessary under emulation.
2026-02-26 10:44:16 +01:00
Henrik Rydgård
eb234a1563
Finish the split. Greatly simplifies the render code in EmuScreen.
2026-02-08 10:46:16 +01:00
Henrik Rydgård
2ea94534e6
Split up FramebufferManagerCommon::CopyDisplayToOutput
2026-02-08 10:17:42 +01:00
Henrik Rydgård
f01aaeafb1
Split CopyDisplayToOutput in preparation for the next step
2026-02-08 01:06:32 +01:00
Henrik Rydgård
64461329e7
More minor fixes and cleanups
2026-01-02 14:20:20 +01:00
Henrik Rydgård
7853881210
GPU header cleanup: Avoid including GPUCommon.h in some places
2025-11-23 20:37:37 +01:00
Henrik Rydgård
67010ff2af
Split the display layout config between landscape and portrait orientations
2025-11-05 12:49:51 +01:00
Henrik Rydgård
9d1f8a2575
Don't forget to update the vertex addr even when culling 2D draws
...
Fixes #20454
2025-06-06 17:53:49 +02:00
Henrik Rydgård
3e0fea509d
Improve sanity checks for vertex ranges in GPU
2025-05-14 09:39:14 +02:00
Henrik Rydgård
dd38e8d012
GPU constify
2025-05-14 09:39:14 +02:00
Henrik Rydgård
8accc57df7
Avoid using shader blending (with framebuffer copy) if skip-buffer-effects is enabled
...
Fixes #20267
2025-04-17 19:18:59 +02:00
Henrik Rydgård
c23c3e8d03
Measure the available time for "background depth raster". The idea is viable.
2024-12-29 09:45:55 +01:00
Henrik Rydgård
ef934df0f2
Compute and cull by triangle area early before writing 4-groups of triangles
2024-12-29 01:21:16 +01:00
Henrik Rydgård
e8786fc401
Cull 4-groups of triangles early
2024-12-29 01:12:53 +01:00
Henrik Rydgård
6d539cc5e0
More fixes
2024-12-28 23:50:42 +01:00
Henrik Rydgård
aec17d8829
Actually queue up depth draws
2024-12-28 23:21:54 +01:00
Henrik Rydgård
25d79afd47
Small rename, remove some obsolete reporting
2024-12-28 23:05:07 +01:00
Henrik Rydgård
8b10ee3937
Depth Z: Add a stat for Z-culling, correctly distinguish the small/backface stats
2024-12-28 18:45:03 +01:00
Henrik Rydgård
3ccb01b09c
Depth Raster: Add more stats, discard triangles with < 10 px area. Still good results.
2024-12-22 10:32:20 +01:00
Henrik Rydgård
0629a98f97
Add some depth raster stats
2024-12-22 10:32:15 +01:00
Henrik Rydgård
df6ed8cfc9
Do some cleanup of #includes in GPU
2024-12-18 13:57:26 +01:00
Henrik Rydgård
ee297e974d
Move more code into SoftwareTransformCommon, cleanup
2024-12-18 13:57:26 +01:00
Henrik Rydgård
0b06cd1379
Actually avoid looking up the vertex decoder more than once
2024-12-17 22:42:07 +01:00
Henrik Rydgård
15b4f0c299
Lookup the decoder outside of DrawEngine
2024-12-17 19:27:01 +01:00
Henrik Rydgård
61b14df329
Delete obsolete empty function ClearTrackedVertexArrays
2024-12-17 19:15:25 +01:00
Henrik Rydgård
c073b449a1
Workaround for GE debugging in Syphon Filter. Fix some stepping misbehavior.
2024-12-17 09:43:32 +01:00
Henrik Rydgård
54d18bb343
Lift some more debugging functionality into GPUCommon
2024-12-15 14:03:05 +01:00
Henrik Rydgård
11dbae3457
Remove the "DispatchFlush" mechanism, not convinced it's a win
2024-12-15 13:42:05 +01:00
Henrik Rydgård
794fa28035
Small simplification
2024-12-15 13:23:34 +01:00
Henrik Rydgård
638607d29a
Refactor: Make GPUCommon own the framedump "recorder".
2024-12-15 12:07:44 +01:00
Henrik Rydgård
d3b6d12067
Cull through-mode 2D draws against scissor rectangle
...
Helps texture replacement load performance in Fate Extra CCC (it does a lot
of off-screen drawing), and may help in other situations too.
2024-12-01 14:54:55 +01:00
Henrik Rydgård
ab1072224f
Cleanup, add another GPU stat
2024-10-29 08:18:41 +01:00