Commit graph

9345 commits

Author SHA1 Message Date
Henrik Rydgård
bcbe0f97fb Add a comment explaining the plan 2025-01-18 12:47:36 +01:00
oltolm
9566065455 make compile on mingw-w64 2025-01-11 01:25:27 +01:00
Henrik Rydgård
b097a54ee0 Don't assert when using the old Ge debugger in OpenGL 2025-01-05 09:28:34 +01:00
Henrik Rydgård
8d6593b92b Remove compat flag AllowDelayedReadback 2025-01-05 09:18:13 +01:00
Henrik Rydgård
206d4d1fea Implement the low-quality depth raster mode, default to it on Android/iOS.
I really can't tell much of a difference in practice...
2024-12-31 11:19:38 +01:00
Henrik Rydgård
f85d7db5b1 Comment fixes, buildfix 2024-12-31 02:39:58 +01:00
Henrik Rydgård
dee5fe6990 Fix issue in Midnight Club where Z now wrapped around at a distance, after removing the clamp. Might as well cull. 2024-12-31 02:30:05 +01:00
Henrik Rydgård
7ddd7024f4 Revert unintentional change. Warning fix 2024-12-31 02:17:33 +01:00
Henrik Rydgård
e0991a7070 DepthRaster: Improved guardband rejection, fixing glitches. 2024-12-31 01:59:15 +01:00
Henrik Rydgård
bcab17fcf3 Parallelize triangle setup. However, some glitches appear... 2024-12-31 01:59:11 +01:00
Henrik Rydgård
36c5065d5d Add crude guardband culling to depth rasterizer 2024-12-31 01:59:11 +01:00
Henrik Rydgård
de09dec9d1 Move branches out of triangle setup 2024-12-31 01:41:25 +01:00
Henrik Rydgård
373569bf64 More prep. Add triangle loop. 2024-12-31 01:41:22 +01:00
Henrik Rydgård
2eed309d29 Simplify more 2024-12-31 01:41:22 +01:00
Henrik Rydgård
d435945b7c Simplify 2024-12-31 01:41:22 +01:00
Henrik Rydgård
69b35e9146 Inline edge calculations 2024-12-31 01:41:05 +01:00
Henrik Rydgård
1195c630c3 Some variable renaming 2024-12-29 14:03:06 +01:00
Henrik Rydgård
f70889ad49 Better triangle area calculation, thanks fp64 for the reminder 2024-12-29 13:45:01 +01:00
Henrik Rydgård
d325bb872b Prepare for tiled depth raster 2024-12-29 10:05:32 +01: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
4ef3ac474a Just minor cleanup and prep in depth raster 2024-12-28 23:16:59 +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
6136c7f5ef More reorg 2024-12-28 18:51:37 +01:00
Henrik Rydgård
66926e28c1 Simplify / fix through mode triangles 2024-12-28 18:51:37 +01:00
Henrik Rydgård
3c3dfe5273 Reorganize depth raster draw state handling 2024-12-28 18:51:34 +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
449e3e1360 Very minor soft transform optimization 2024-12-28 18:45:03 +01:00
Henrik Rydgård
eec7853efe
More SIMD: Add some matrix operations to CrossSIMD (#19773)
* More CrossSIMD functionality

* Use the new SIMD API for the matrix multiplies
2024-12-28 18:45:14 +01:00
Henrik Rydgård
8c069917b5
Depth raster optimizations: Merge viewport into projection matrix, prepare for further SIMD-ification (#19769)
* Remove some old redundant reports

* Fix scissor off by one

* More CrossSIMD

* Move the viewport scale out to the proj matrix

* DepthRaster: Also merge the viewport translation into the projection matrix.

* Depth raster: Do the triangle clipping in batches of 4 triangles

* Cleanup
2024-12-28 10:36:39 +01:00
Henrik Rydgård
cc040ab251
Depth raster: Bugfix, minor opt (#19768)
* Correct two errors in CrossSIMD.h, thanks hiroyuki177

Fixes #19767

* DepthRaster: Merge offset into viewport X/Y
2024-12-26 20:23:52 +01:00
Henrik Rydgård
4aaea67766 Enable depth raster in all backends, not just Vulkan 2024-12-24 23:26:32 +01:00
Henrik Rydgård
0e59cd7641 DepthRaster: Fix typo breaking LESS depth comparison mode on x86(64) 2024-12-24 23:26:32 +01:00
Henrik Rydgård
b39a09e87b Specialize DepthRasterTriangle for the comparison modes using templating. 2024-12-22 19:24:12 +01:00
Henrik Rydgård
ab088cf158 Depth raster: Clip rects to scissor too. Fixes some crashes 2024-12-22 14:14:55 +01:00
Henrik Rydgård
03f09aebd7 Enable software depth raster for Wipeout, Midnight Club LA, Resistance.
Adds a setting to control it under speedhacks, named "Lens flare
occlusion". The setting includes a low quality mode which is not yet
implemented.
2024-12-22 10:48:46 +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
19434ff303 Keep the depth in floating point to save some conversions 2024-12-22 10:32:19 +01:00
Henrik Rydgård
0629a98f97 Add some depth raster stats 2024-12-22 10:32:15 +01:00
Henrik Rydgård
d53635e096 Optimize the triangle inner loop a little more 2024-12-22 10:32:15 +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
80cb57f8bb Cleanup 2024-12-21 14:28:01 +01:00
Henrik Rydgård
5df88fc1aa Convert the rect implementation to CrossSIMD 2024-12-21 14:28:01 +01:00
Henrik Rydgård
73ae6da757 Reimplement the depth rasterizer with SIMD. 2024-12-21 14:28:00 +01:00
Henrik Rydgård
d1b50ea543 Comment 2024-12-21 14:28:00 +01:00
Henrik Rydgård
ad1809875a Minor sign check optimization 2024-12-21 14:28:00 +01:00