Lin Runze
5b406f00fd
loongarch: Initial VertexJIT support and bug fix
2025-07-17 00:33:56 +08:00
Henrik Rydgård
9ecc135601
Vertex decoder C++ fallbacks: Make sure to never read from the destination
...
This can have devastating effects on performance on some architectures.
Will help, but not fix, #20171 on some hardware (there's more
optimization work that needs doing).
2025-05-26 11:18:45 +02:00
Henrik Rydgård
4e0b6ac3ec
More misc cleanup
2025-05-14 15:14:03 +02:00
Henrik Rydgård
dd38e8d012
GPU constify
2025-05-14 09:39:14 +02:00
Henrik Rydgård
c6691de64c
Remove excessive error reporting
2025-03-02 02:28:42 +01:00
Henrik Rydgård
449e3e1360
Very minor soft transform optimization
2024-12-28 18:45:03 +01:00
Henrik Rydgård
c91169e702
Restore removed <algorithm> includes.
...
Turns out these were needed after all. For some reason, on Windows and
Mac, <algorithm> gets auto-included by something else so I don't notice
when it's missing, and MSVC's include dependency tracker doesn't see it
either.
2024-12-19 09:53:07 +01:00
Henrik Rydgård
df6ed8cfc9
Do some cleanup of #includes in GPU
2024-12-18 13:57: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
2c283fbb07
Minor cleanups, crashfixes
2024-10-14 23:57:19 +02:00
Henrik Rydgård
42c32c5afc
VertexDecoder: Don't read loop counts from memory. Improves codegen
2024-09-10 17:53:19 +02:00
Henrik Rydgård
43c68c4277
VertexDecoder: Remove member function pointers from decoding
2024-07-22 14:06:15 +02:00
Henrik Rydgård
fd9daf7594
Fix some minor issues found by --sanitize. Add --sanitizeub.
...
Unfortunately the ub (undefined behavior) sanitizer has some bugs, it doesn't
understand pointers to member functions, so can't use it in-game (due to the
vertex decoder).
Thanks Nemoumbra for the reminder.
2024-07-22 11:37:18 +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
8d6e96d04e
Use binary search to find IR block offsets
2024-06-07 09:28:27 +02:00
Henrik Rydgård
c794f4bd41
Add an unrelated comment and some casts
2024-06-05 08:35:09 +02:00
Henrik Rydgård
6ce087430b
JIT-less vertex decoder: SSE/NEON-optimize ComputeSkinMatrix
2024-06-04 12:29:16 +02:00
Henrik Rydgård
9ac7054b01
Vertex decoder (non-JIT): Optimize 16-bit color decoders.
2024-06-04 10:35:31 +02:00
Henrik Rydgård
7a32507ab7
Add a decode counter to vertex decoders in _DEBUG mode
2024-06-02 10:25:05 +02:00
Henrik Rydgård
fb599cd0a6
Only use the optimized decoders if SSE or NEON is available.
2024-05-11 14:18:42 +02:00
Henrik Rydgård
4a66f8978b
Fix the GoW optimized vertex decoder, add NEON optimizations
2024-05-11 13:27:11 +02:00
Henrik Rydgård
bafff7f5db
Temporarily disable the custom GoW vertex decoder, it needs some work.
2024-05-11 11:11:48 +02:00
Henrik Rydgård
3526416173
Add another handwritten vertex decoder
2024-05-11 10:00:39 +02:00
Henrik Rydgård
81f1b3fd95
Make handwritten vertex decoders work with non-compiled vertex decoding
2024-05-11 10:00:35 +02:00
Henrik Rydgård
3e11e54405
Remove obsolete flag
2024-05-11 10:00:35 +02:00
Herman Semenov
b57dab2812
[GPU] Make static and const methods if possible
2024-04-05 17:04:31 +03:00
Henrik Rydgård
e3177ac870
Make some global string pointers const, not just the strings.
...
Minor cleanup.
2023-12-29 14:09:45 +01:00
Henrik Rydgård
f86189c951
Show vertex decoders separately in profiles
2023-12-19 12:25:54 +01:00
Herman Semenov
315340fc62
Using const reference for C++17 range-based loop and freq used objects
2023-12-13 17:33:01 +01:00
Henrik Rydgård
71aaad23fb
Fix issue with zero-vertex draw calls. Though, should maybe just filter them out earlier.
2023-12-10 12:21:07 +01:00
Henrik Rydgård
d4703e9534
Decoded position format is always the same
2023-10-06 15:39:58 +02:00
Henrik Rydgård
92ffef2626
Remove some state from IndexGenerator, fix bugs. Mostly works except vertex cache.
2023-10-03 11:01:37 +02:00
Henrik Rydgård
45bc4d8750
Make GetIndexBounds friendlier to autovectorization. Works on x86 at least.
2023-09-24 12:15:04 +02:00
Unknown W. Brackets
622c69dbb9
x86jit: Expose option to select new IR based jit.
2023-08-20 22:28:54 -07:00
Henrik Rydgård
bee2400230
Merge pull request #17769 from unknownbrackets/vertexjit-debug
...
Add compilation-enabled vertexjit compare tool
2023-07-24 09:39:52 +02:00
Unknown W. Brackets
311c78f26b
GPU: Make the vertexjit diff smarter.
2023-07-23 14:28:45 -07:00
Unknown W. Brackets
b6f11d6dae
GPU: Add a little tool to debug vertexjit.
...
Although it's too exacting right now, it still helps.
2023-07-23 14:28:45 -07:00
Unknown W. Brackets
312dcfc1c5
GPU: Correct UV scale for non-jit.
2023-07-23 14:25:43 -07:00
Henrik Rydgård
01cea7f088
Pass uvScale in as an argument to the vertex decoder
...
Cleaner than overwriting/restoring gstate_c.uvScale in the decoder
loop. A small cleanup I've been wanting to do for ages.
Expecting a negligble perf boost if any.
2023-06-12 20:25:18 +02:00
Henrik Rydgård
80e47b7bd3
Only dirty the uniform UVSCALEOFFSET when really needed
...
Broken out from #17479
With OpenGL, greatly reduces the amount of glUniform4fv calls in many games (and
similar in the other backends).
2023-05-25 15:00:57 +02:00
Unknown W. Brackets
9c21184352
vertexjit: Simplify CPU core check.
...
This also avoids allocating the memory we won't use if it's off.
2023-02-28 07:03:12 -08:00
Unknown W. Brackets
8d4007ce3f
Vulkan: Force align verts to 4 on Apple devices.
2023-01-18 07:24:18 -08:00
Unknown W. Brackets
77849d3eed
riscv: Add disassembler.
...
From https://github.com/anthony-coulter/riscv-disassembler .
Modified slightly to pull in less headers in the h, prefix funcs.
2023-01-01 10:28:53 -08:00
Unknown W. Brackets
49f6c461ad
Reporting: Fix some header includes.
...
Particularly in Common, avoid including Core/Reporting.h.
2022-12-27 14:58:20 -08:00
Unknown W. Brackets
a7b7bf7826
Global: Set many read-only params as const.
...
This makes what they do and which args to use clearer, if nothing else.
2022-12-10 21:13:36 -08:00
Unknown W. Brackets
66472c39ce
GPU: Use skinned position always in bounding check.
...
Meanwhile, move to a flag on decoder options instead of global check.
2022-11-06 08:23:31 -08:00
Unknown W. Brackets
ca248e1201
softgpu: Fix s8 primitives in throughmode.
...
Also always cull no-position verts, hardware too. Matches tests.
2022-09-18 07:46:18 -07:00
Unknown W. Brackets
4889d5285d
vertexjit: Use consistent skinInDecode.
...
Just a little cleanup.
2022-09-10 21:54:04 -07:00
Unknown W. Brackets
470d2f0f4e
vertexjit: Remove unused ReadUV() cases.
2022-09-01 23:33:52 -07:00
Unknown W. Brackets
f2d5d668a5
vertexjit: Remove unused ReadPos() cases.
2022-09-01 23:33:52 -07:00