Henrik Rydgård
e6185ba6bb
Clean out NaNs and INFs from vertex coordinates
...
This enables a behavior seen on the real PSP where 0 * NaN == 0 in the
GPU (NOTE: This means the vertex transform pipeline).
However, this
doesn't touch INFs unfortunately, and we need to modify those too...
This, together with #21715 , finally fixes #20204 .
2026-06-02 10:52:39 +02:00
Henrik Rydgård
2a5c2fa477
Check if the viewport transform matches the clip space. If so we can skip the near clip plane.
2026-05-30 19:07:59 +02:00
Henrik Rydgård
328e1b681c
More CrossSIMD ops
2026-05-28 10:56:33 +02:00
Henrik Rydgård
82a888fd8e
Reimplement the fast culling using CrossSIMD
2026-05-25 18:16:34 +02:00
Henrik Rydgård
ef78791f5d
Add some more required functions to CrossSIMD
2026-05-25 18:16:31 +02:00
Henrik Rydgård
250abe0d56
Loongarch64 build fixes
2026-05-25 15:41:24 +02:00
Henrik Rydgård
8b6951c803
Apply vldi fix
2026-05-25 15:40:22 +02:00
copilot-swe-agent[bot]
c05e1cfd3c
Address LSX CrossSIMD review feedback
...
Agent-Logs-Url: https://github.com/hrydgard/ppsspp/sessions/6187ce4f-6c64-4b50-b82c-49799ea8cfd2
Co-authored-by: hrydgard <130929+hrydgard@users.noreply.github.com >
2026-05-25 15:40:22 +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
7d987cd78b
Make fast_matrix_mul_4x4 inlineable
2026-01-30 14:10:32 +01:00
Eric Warmenhoven
58eaf56c5e
libretro: build fix
...
gcc9 and the version of msvc19 that the libretro builders use don't
have _mm_storeu_si32. Using _m_cvtsi128_si32 followed by memcpy is
picked up by compilers that support _mm_storeu_si32 as being the same
and they generate the same assembly, so this is no harm to them.
2026-01-28 00:15:35 -05:00
Henrik Rydgård
47f6b9975e
Optimize the color alpha computation for color morph
2026-01-20 13:51:24 +01:00
Henrik Rydgård
3378faca5e
Optimize morph code (non-JIT vertex decoders)
2026-01-20 13:51:24 +01:00
Henrik Rydgård
a8f89e1544
Correct rounding in StoreConvertToU8, correct Vec4F32::Store3.
2026-01-20 13:51:24 +01:00
Henrik Rydgård
fc09669ba7
Add DualSense support. Remove trying to support bluetooth devices (not reliable without more work)
2025-07-03 11:11:34 +02:00
Henrik Rydgård
fd88f79d07
CrossSIMD: Fix more no-simd fallbacks. The depth rasterizer now works in TEST_FALLBACK mode.
2025-02-10 11:51:22 -06:00
Henrik Rydgård
8907a4c001
More fixes, improve unit test
2025-02-06 10:26:46 -06:00
Henrik Rydgård
fc0b1eef4c
Fix 4x4
2025-02-06 10:26:46 -06:00
Henrik Rydgård
07e892e1a2
Fix some type mismatches in CrossSIMD.h that not all compilers complain about.
...
Fixes #19905
2025-02-01 10:30:02 -06:00
Henrik Rydgård
c78fa60431
Add better way to check if CrossSIMD has been natively implemented
2025-01-28 10:56:52 +01:00
Henrik Rydgård
acd5b24924
Complete CrossSIMD non-simd fallback (although buggy, it seems). Minor ARM64 opt.
2025-01-28 10:54:43 +01:00
Henrik Rydgård
2aaa1e5379
CrossSIMD: Expand the no-simd path
2025-01-28 10:54:43 +01:00
Henrik Rydgård
74501b06b6
CrossSIMD: Add more no-simd fallback types
2025-01-28 10:54:43 +01:00
Henrik Rydgård
9d164b71fb
Some new CrossSIMD operations
2025-01-28 10:54:43 +01:00
Henrik Rydgård
9ccf47a6b3
Fix type error in minor ARM64 optimization, which some compilers don't like.
...
Fixes #19905
2025-01-22 09:54:20 +01:00
Henrik Rydgård
a5116e1590
Use vmaxvq_s32 to implement AnyZeroSignBit more efficiently on ARM64
2025-01-19 17:49:09 +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
f5cc41caab
More CrossSIMD (breaking change)
2024-12-31 01:59:11 +01:00
Henrik Rydgård
c3ac798545
More crosssimd
2024-12-31 01:59:08 +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
66926e28c1
Simplify / fix through mode triangles
2024-12-28 18:51:37 +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
0e59cd7641
DepthRaster: Fix typo breaking LESS depth comparison mode on x86(64)
2024-12-24 23:26:32 +01:00
Henrik Rydgård
8e747dc948
CrossSIMD: Add a multiply-as-16bit function to Vec4S32. This can be implemented quickly on SSE2.
2024-12-22 18:53:10 +01:00
Henrik Rydgård
3bd2441f4a
CrossSIMD: Add SwapLowerElements to Vec4F32
2024-12-22 10:32:16 +01:00
Henrik Rydgård
bd3a252104
CrossSIMD: Add a simple operation
2024-12-21 21:21:40 +01:00
Henrik Rydgård
8cd86b47b5
AnyZeroSignBit arm fix, more crosssimd fixes. Now works on ARM.
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
399570e411
CrossSIMD: make the transpose function compatible with ARM32
2024-12-21 14:28:00 +01:00
Henrik Rydgård
2051d55c90
CrossSIMD: Add a bunch more functonality for use by the rasterizer
2024-12-21 14:28:00 +01:00
Henrik Rydgård
65692d036e
CrossSIMD: possible buildfix?
2024-12-21 14:28:00 +01:00
Henrik Rydgård
0b009c10be
CrossSIMD: Add reciprocal, clamp, swaplowerelements, etc
2024-12-21 14:28:00 +01:00
Henrik Rydgård
03b9f98055
Add more funcionality to CrossSIMD.h, like fast matrix mul and some conversion
2024-12-21 14:28:00 +01:00
Henrik Rydgård
de45960420
Reformat CrossSIMD.h for easier editing. Add some new methods.
2024-12-21 14:28:00 +01:00
Henrik Rydgård
c92b3b6521
Move prototype cross simd wrapper structs to CrossSIMD.h
2024-12-21 14:27:59 +01:00