Commit Graph

111 Commits

Author SHA1 Message Date
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
Henrik Rydgård 56a164a14e Handle one more error case in presentation 2024-10-28 17:02:03 +01:00
Henrik Rydgård a062e5192b Fix issue where PresentedThisFrame didn't work on SoftGPU, causing issues 2024-10-16 15:53:42 +02:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård b4eecf3d5c Mali: Turn off any depth writes if depth test is set to NEVER. 2024-02-02 11:11:31 +01:00
Henrik Rydgård 533fa14e27 Add a stat for number of verts decoded. It's quite high but not crazy for UFC 2010...
See #18806
2024-02-01 19:19:53 +01:00
Henrik Rydgård 0615ba3e54 Some paranoia and a comment 2024-01-29 00:54:18 +01:00
Henrik Rydgård 8b4f80c562 GPUCommonHW: Check range of indexes for indexed draws. 2024-01-28 22:58:20 +01:00
Henrik Rydgård 822ebf9dfb Use the correct culling function in the fast draw-continuation loop 2023-12-28 10:40:56 +01:00
Henrik Rydgård e488189723 Inline UpdateUVScaleOffset 2023-12-21 12:10:10 +01:00
Henrik Rydgård 50bcb2a77a Add "Disable culling" as a speedhack for experimentation
Range culling (which we'll just call culling in the setting
name) still is problematic enough that it can be useful to have this
way to turn it off as an escape route. Since disabling it can break some
games like famously TOCA, it needs to be under speedhacks, though likely
the performance change is minimal.

See for example #17061
2023-12-18 13:13:44 +01:00
Henrik Rydgård 33e48e9675 OpenGL: Fix some confusion between gpu->BeginHostFrame and gpu->BeginFrame, fixing black screen 2023-12-11 23:05:37 +01:00
Henrik Rydgård 8d8ff5886b Fix issue where nothing had started a render pass when we wanted to clear the screen. 2023-12-11 13:06:15 +01:00
Henrik Rydgård 7e85d3d10a Disable the new culling on RISC-V for now. 2023-12-09 16:49:02 +01:00
Henrik Rydgård a043962447 World space planes 2023-12-09 15:55:51 +01:00
Henrik Rydgård 89d8ef87ec Use a less accurate but faster frustum cull for the general draws. 2023-12-09 15:55:51 +01:00
Henrik Rydgård 0905b6a5ad Frustum-cull small draws
Some games do a poor job of culling stuff, and some transparent
sprites can be very expensive if they cause a copy.
Skipping them if outside the viewport makes sense in that case.

One example are the flame sprites in #17797 .

Additionally, we should be able to cull through-mode draws easily, this
one doesn't even try.
2023-12-09 15:55:51 +01:00
Henrik Rydgård 8588b11a6a Rename MayIntersectFramebuffer to MayInteresectFramebufferColor 2023-12-06 09:42:44 +01:00