Commit Graph

118 Commits

Author SHA1 Message Date
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 2eca0123f1 Correct culling in case of some weird viewport setups 2026-05-23 14:49:17 +02:00
Henrik Rydgård 0387cc4497 Remove a confusing operator overload from Lin::Vec3 2026-05-19 16:33:45 +02:00
Henrik Rydgård 85de7fdc50 Add new flag that will simplify the GL path 2026-05-14 22:20:35 +02:00
Henrik Rydgård eb476d522e Rename FocusDirection to FocusMove, make into enum class 2026-04-14 18:17:54 -06:00
Henrik Rydgård 1cc2b7233a Fix some minor visual UI issues
See #21223
2026-02-15 19:57:56 +01:00
Henrik Rydgård 31dc48c815 Add a unit test to mat4 x mat4 2026-01-31 13:11:02 +01: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 3d20251500 Game background in menus: Crop to fit instead of stretch to fit. Generally looks better, I think. 2025-11-15 20:44:14 +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 b660dcee2b Various inset and margin fixes and improvements 2025-10-28 13:59:37 +01:00
Henrik Rydgård 138be54f6a More misc work 2025-10-28 11:54:07 +01:00
Henrik Rydgård 33b87578c5 Revive old alignment utility functions, give them better names. 2025-09-03 20:48:51 +02: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 776dc4734a Prevent UI from hanging if backing out of the MemstickScreen while tasks are underway 2025-05-26 11:57:19 +02:00
Henrik Rydgård a26dd326f5 More visual updates 2025-05-25 11:22:04 +02:00
Henrik Rydgård 2bfe327dbd Expose PSPThread in the same manner 2025-03-31 10:24:03 +02:00
Henrik Rydgård 09eaf084d0 Remove unused float16 type 2025-02-14 09:50:55 -06: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
Wang Xiang 66f5ac9897 Add fast_matrix_mul_4x4_lsx function for LoongArch64 2025-02-10 16:20:46 +08:00
Henrik Rydgård d5bd7d24aa Merge pull request #19955 from hrydgard/crosssimd-test
CrossSIMD: Add a simple unit test, fix a couple of operations in the no-simd path
2025-02-06 11:37:59 -06:00
Wang Xiang 56bd3d8dc6 Include <string.h> without ifdef 2025-02-07 00:31:37 +08: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
Wang Xiang 3eeaed68f2 Fix memcpy not declar error. 2025-02-06 16:32:31 +08:00
Henrik Rydgård 496f14c4f5 Fix another false-ish positive 2025-02-04 10:19:34 -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