Henrik Rydgård and Claude Opus 5.5
a89fdb2c9a
SoftGPU: Remove the pixel and sampler JITs
...
The C++ paths draw and sample four pixels at a time in vector lanes,
while a JIT function only does one, and with a JIT function in use the
span and quad paths were skipped. On x86 the JITs had become slower:
Wipeout took 13% more wall time and 25% more CPU with them, God of War
3% more. They were also a second implementation of every GE rule, and
ARM never had them.
The SoftwareRendererJit setting goes with them. RasterizerRegCache.h
keeps only the types the pixel and sampler functions take, as
RasterizerTypes.h.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-10 13:44:48 +02:00
Henrik Rydgård and Claude Opus 5.5
84582c10f1
GPU: Add the GE's depth buffer layout in VRAM
...
Where the GE stores each depth pixel, from the EDRAM address translation
and the color format: with 32-bit color, address bits 5 up to log2(T) - 1
rotate left by one, then (T << 3) | 0x40 is XORed in (0x600, and bits 9
and 10 swapped, at T 0). The CPU sees the same mapping through VRAM's
0x04200000 and 0x04600000 mirrors. Measured in ppsspp-re geprobe exp8-10
(every pixel of 512x272 buffers at each T) and exp88; the unit test checks
it against the model fitted there.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-08 18:35:48 +02:00
Henrik Rydgård and Claude Opus 5.5
32c41a3417
SoftGPU: Gather the GE arithmetic in GEMath.h
...
The float24 truncations, reciprocal and rsqrt tables, GE adder and row sums,
the setup reciprocal for planes, the mip log2, texture coordinate precision,
the lighting pow and color scaling, and the antialiased line alpha, from
TransformUnit, Rasterizer and Lighting, so they can be unit tested. No
behavior change.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-02 15:09:43 -06:00
Henrik Rydgård
5cffcd34ad
Get rid of the confusing old USING_WIN_UI define. Make a more clear system property for headless.
2026-08-16 12:19:41 +02:00
Henrik Rydgård
3eb056ad86
Move Common/GraphicsContext.h to Common/GPU/GraphicsContext.h
2026-07-26 13:58:17 +02:00
Henrik Rydgård
ec6c7b08f5
Add a common TextureAlpha enum, replacing CheckAlphaResult and ReplacedTextureAlpha.
2026-06-09 11:25:50 +02:00
Henrik Rydgård
195455a7f4
Break out VertexReader, prepare VertexReader for CrossSIMD use in software transform
2026-06-04 12:45:17 +02:00
Henrik Rydgård
0b47955c64
Delete geometry shader culling support. Is mostly replaced, and will be fully replaced with software transform.
2026-05-30 19:07:59 +02:00
Henrik Rydgård
83dcd24043
Small SIMD optimization in software transform
2026-05-30 19:07:59 +02:00
Henrik Rydgård
4335a327cd
Hackery to prepare for constant buffers in compute
2026-04-23 13:31:51 +02:00
Henrik Rydgård
7b1ba55e72
Prevent touch controls from fading away while being held.
...
Fixes #20531
2026-02-04 00:00:38 +01:00
Lin Runze
5b406f00fd
loongarch: Initial VertexJIT support and bug fix
2025-07-17 00:33:56 +08:00
Henrik Rydgård
ad00c20660
Windows: Remove ARM32 configurations from project files.
...
These will never be supported again (and never really were, only used
for Windows Phone testing a long time ago)
2025-06-11 08:55:13 +02:00
Henrik Rydgård
6cfea96e58
Remove D3D9 support, to make future changes easier
2025-06-10 15:07:16 +02:00
oltolm
2d9f5ecc8f
dx9sdk: do not use submodule
2025-01-18 11:28: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
21997784bf
Extract FormatStateRow() from the Win32 GE debugger to GPU/Debugger/Registers
2024-12-05 10:07:29 +01:00
Henrik Rydgård
0df2a40487
Remove the "GPUInterface" base class. Not really useful, GPUCommon is pretty much the same thing.
2024-12-02 11:12:14 +01: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
d996fb74d4
MSVC: Set language standard to c++17.
...
Noticed that we were getting some new warnings after merging the
constexpr stuff.
2023-04-02 17:55:15 +02:00
Henrik Rydgård
cb10862510
Move texture replacer to GPU/Common.
...
Add new files ReplacedTexture.cpp/h too.
2023-03-09 21:11:53 +01:00
Henrik Rydgård
18999c3687
Create the GPUCommonHW class.
2023-02-25 14:42:10 +01:00
Unknown W. Brackets
219e0db4e5
riscv: Initial vertexjit.
2023-02-12 14:28:51 -08:00
Henrik Rydgård
fb8aff5a8c
Split out the depth stuff from the file, move to GPU/Common
2023-02-03 21:06:43 +01:00
Henrik Rydgård
c668736924
Add a couple of stereo display shaders, add infrastructure, compile stereo pipelines
2022-10-27 11:05:58 +02:00
Henrik Rydgård
cdee10fe86
Vulkan: Basic geoshader code generation.
2022-10-02 07:42:17 -07:00
Unknown W. Brackets
542e7aa555
GE Debugger: Add a table of register metadata.
...
So far, not used, but indicates info about each GE register.
2022-09-05 12:15:53 -07:00
Henrik Rydgård
82a6c42e17
DepalettizeCommon -> TextureShaderCommon. Simplifications.
2022-08-22 12:21:20 +02:00
Henrik Rydgård
87b128ecaf
Compiles on Vulkan, but doesn't yet work.
2022-08-06 18:27:03 +02:00
Henrik Rydgård
7085861aad
Switch over D3D9 as well. Buggy, will debug after unification
2022-08-06 18:27:03 +02:00
Henrik Rydgård
e345a6ba3c
Works with D3D11, except the depth texturing case
2022-08-06 18:27:03 +02:00
Henrik Rydgård
37555fd442
Move to Common
2022-08-06 18:27:02 +02:00
Henrik Rydgård
59b3df0643
Draw2D
2022-08-03 14:12:55 +02:00
Henrik Rydgård
9bead443c3
Unify stencil buffer upload using Draw. Only OpenGL tested yet (shaders need adaptation).
2022-08-03 13:31:13 +02:00
Henrik Rydgård
063cd18254
Simplify CPU upscaling code
...
Use the existing expandTo32bit mode in the texture decoder instead of
the backend-specific switches and stuff.
Just gets rid of a bunch of redundant code and makes further changes
easier.
2022-07-30 15:06:25 +02:00
Henrik Rydgård
a68ddd0a8d
Merge separate NEON functions into the normal functions.
...
We no longer support non-NEON ARM.
It's nice also to have the NEON and SSE implementations "close" to each
other, easier to port optimizations back and forth etc.
2022-04-12 23:43:21 +02:00
Unknown W. Brackets
a0a9b1e89b
softgpu: Add class to manage and enqueue for bins.
...
For now, just forwarding.
2022-01-13 09:26:59 -08:00
Henrik Rydgård
10db19efc4
Add a 2x2 downsampled version of 4xBRZ as 2xBRZ (save memory bandwidth)
...
fmt
2021-12-12 23:19:29 +01:00
Unknown W. Brackets
3d5bced296
softjit: Rename reg cache so it can be reused.
...
Intentionally just the name changes in this commit.
2021-11-28 08:03:15 -08:00
Unknown W. Brackets
ae3299ea04
softjit: Add stubbed DrawPixel for x64.
2021-11-26 08:21:11 -08:00
Unknown W. Brackets
09dc38080a
softgpu: Move draw pixel code to separate file.
...
This separates things better anyway. No major perf impact.
2021-11-21 08:23:32 -08:00
Unknown W. Brackets
953200c995
softgpu: Add func to calculate pixel func ID.
...
This normalizes some things, and eventually can be used for a jit key.
2021-11-20 15:27:04 -08:00
Unknown W. Brackets
d3e2aa6d28
Build: Add libzstd to build.
2021-04-11 09:13:10 -07:00
Unknown W. Brackets
3c9ab13672
GPU: Remove NULL GPU.
...
We can use the software GPU without a backend now, and this is in every
way superior and will result in better tests/headless behavior.
2021-01-02 09:36:13 -08:00
Henrik Rydgård
766dbc5a9f
Move ShaderTranslation.cpp/h to Common/GPU.
2020-11-09 11:18:43 +01:00
Henrik Rydgård
19b4febbbf
More reinterpret shader gen and test work.
...
More work on reinterpret
Buildsystem fixes
2020-11-08 10:41:20 +01:00
Henrik Rydgård
733a152c54
Move ShaderWriter to Common/GPU, along with some stuff from ShaderCommon.h.
2020-11-04 09:18:35 +01:00
Henrik Rydgård
39b5eb5b3d
ShaderWriter, a replacement for the sprintf WRITE macro.
2020-11-02 10:02:52 +01:00
Henrik Rydgård
f4ea3ccf22
Move the generic vertex shader generator into GPU/Common and rename it.
2020-11-01 19:58:54 +01:00
Henrik Rydgård
be837912e1
Delete the HLSL shader generator, switch to the newly generic one.
2020-11-01 19:58:54 +01:00