Henrik Rydgård
10759dc8b9
DrawEngineCommon: Avoid using member variables as loop counters, bad for perf
2026-01-30 14:10:36 +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
44d06ec42f
Add some sanity checks guided by Android crash reports
2025-06-07 16:35:19 +02: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
8ed898c5e6
GPU: Constify VertexDecoder pointers, remove in some cases
2025-05-14 15:13:59 +02:00
Henrik Rydgård
5d85d5ed22
Depth raster: Rename some variables, fix incorrect draw limit
2025-04-10 17:49:06 +02:00
Henrik Rydgård
b080f7da6b
Small depth raster refactor
2025-04-10 17:13:48 +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
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
1e8eb88bf0
Unify the ends of the two depth draw paths
2024-12-28 19:22:23 +01:00
Henrik Rydgård
3c3dfe5273
Reorganize depth raster draw state handling
2024-12-28 18:51:34 +01:00
Henrik Rydgård
2371fdfedd
Rework depth raster to fully support software transform
2024-12-21 21:22:22 +01:00
Henrik Rydgård
a344d0225f
DepthRaster: Fix bug where we used the wrong vertex count.
2024-12-21 14:28:00 +01:00
Henrik Rydgård
67078d439b
Depth raster: Switch to a SoA data layout for the screen space verts
2024-12-21 14:28:00 +01:00
Henrik Rydgård
bdb5f3a91b
Reorganize the depth vertex pipeline for future optimizations
2024-12-21 14:27:59 +01:00
Henrik Rydgård
c5ad81e3d5
Add DepthRaster.cpp/h. Rasterize depth rectangles, some triangles
2024-12-21 14:27:53 +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
fe4504f612
Small simplification
2024-12-17 19:15:06 +01:00
Henrik Rydgård
a2a089b8c1
Remove the member function NormalizeVertices
2024-12-17 19:15:03 +01:00
Henrik Rydgård
a07da939ef
Some NormalizeVertices interface cleanup
2024-12-17 19:13:38 +01:00
Henrik Rydgård
fec232f8a8
GPU: Move things around a little, out of DrawEngine.
2024-12-17 19:13:38 +01:00
Henrik Rydgård
abb2558535
When overriding skinning in sw transform mode, don't write/restore member variables
2024-12-17 18:52:49 +01:00
Henrik Rydgård
20ecbfdf57
Pass the VertexDecoder pointer around
2024-12-17 18:24:26 +01:00
Henrik Rydgård
e74101a2fb
applySkinInDecode belongs in the VertexTypeID, not in the options.
2024-12-17 18:24:18 +01:00
Henrik Rydgård
190af89d9f
Plumb in a GPUCommon pointer in the draw engines. (Hopefully can get rid of this later)
2024-12-15 13:53:27 +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
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
858f37b8fc
Add a couple of asserts (to make things error out earlier)
2024-10-17 21:01:58 +02:00
Herman Semenov
b57dab2812
[GPU] Make static and const methods if possible
2024-04-05 17:04:31 +03: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
db94b0b696
Pass the limit on the number of indices to generate to BuildDrawingParams.
2024-01-15 10:09:04 +01:00
Henrik Rydgård
61acce195c
Avoid decoding indices when we don't need them.
2023-12-20 14:25:19 +01:00
Henrik Rydgård
f86189c951
Show vertex decoders separately in profiles
2023-12-19 12:25:54 +01:00
Henrik Rydgård
aca3bbc9a0
DrawEngine: Remove the confusing MaxIndex accessor, replace with directly reading numDecodedVerts_
2023-12-10 11:58:47 +01:00
Henrik Rydgård
62c936babf
Flip the cull plane data around to avoid transforming each vertex multiple times.
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
e4ea4831e9
Delete the vertex cache option from the code.
2023-10-10 15:43:43 +02:00
Henrik Rydgård
078018a943
Move the clockwise calculation out of DrawEngineCommon
2023-10-10 13:16:34 +02:00
Henrik Rydgård
82606b6eb2
Move the clockwise calculation out of the AddPrim loop
2023-10-10 13:00:57 +02:00
Henrik Rydgård
10bc6b4cd8
Safety check that doesn't fix crazy taxi
2023-10-09 21:10:53 +02:00
Henrik Rydgård
a8b8580756
Don't forget to check the stall address, even in the optimized primitive loop
2023-10-09 14:08:11 +02:00
Henrik Rydgård
cd35252400
DrawEngine; Convert strip sequences in a tight loop
2023-10-06 16:25:13 +02:00
Henrik Rydgård
10ccbfd68c
Unify the clearing of variables after a draw call
2023-10-06 15:39:59 +02:00