Henrik Rydgård
3af961f3ba
Revert DrawPixel changes
2023-04-02 16:41:29 +02:00
Герман Семенов
122b63b9a8
GPU: using if constexpr
C++17 optimization
2023-04-02 16:36:37 +02:00
Unknown W. Brackets
a88b8a14f6
softgpu: Fix over-optimization of alpha test.
...
When alpha blend is off, was previously skipping the alpha test if only it
was enabled. See #17213 .
2023-03-31 23:53:37 -07:00
Unknown W. Brackets
2c5b0999e8
softgpu: Make debug-only optim more consistent.
...
Of course it doesn't matter when optimizations are enabled in any compiler
that can build PPSSPP...
2023-03-31 23:52:23 -07:00
Henrik Rydgård
ee3618290b
Typo fix in NEON code.
...
Fixes #16772
2023-01-10 12:32:33 +01:00
Unknown W. Brackets
62fe03dcb4
softgpu: Use NEON for texture blending.
2023-01-07 19:06:35 -08:00
Unknown W. Brackets
587a322207
softgpu: Use NEON SIMD for alpha blending, etc.
2023-01-07 19:06:34 -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
77c98441f4
softgpu: Expand fast path to all fb formats.
...
This should speed up 2D games not using 5551, and make it mroe likely any
regression is caught for Darkstalkers.
2022-12-06 18:43:21 -08:00
Henrik Rydgård
49f8f96a98
Couple more microoptimizations
2022-12-07 02:08:48 +01:00
Henrik Rydgård
50fdf67fd0
Software rect raster: Speed up memory tracking in debug mode (ztag unused, remove allocations)
2022-12-07 01:51:20 +01:00
Henrik Rydgård
b51422c18b
Ordering fix, should fix elimination of the DarkStalkers software blit
2022-12-07 01:50:48 +01:00
Henrik Rydgård
70b6733d0a
Minor alpha bit optimization in Darkstalkers rectangle code
2022-12-07 01:50:29 +01:00
Unknown W. Brackets
51fa931e46
softgpu: Allow no alpha blend in 5551 fast path.
2022-12-06 06:37:51 -08:00
Unknown W. Brackets
60c129c52f
softgpu: Use no-modulate fast path for REPLACE.
2022-12-06 06:31:30 -08:00
Unknown W. Brackets
c291bd78ef
softgpu: Use a template for 5551 fast path.
...
Just refactoring here, should be the same.
2022-12-06 06:29:19 -08:00
Unknown W. Brackets
264a81913d
softgpu: Avoid checking UVs for sprites w/o tex.
2022-12-06 06:11:38 -08:00
Unknown W. Brackets
5d6b213fa7
softgpu: Avoid tri combine to rect if clipping.
2022-12-05 23:24:26 -08:00
Unknown W. Brackets
d9501cb0ad
softgpu: Fix w culling of triangle rects.
2022-12-05 23:09:55 -08:00
Unknown W. Brackets
4d06400548
softgpu: Fix compile hazard while running.
...
This prevents any clearing of cache while other threads may be using
previously cached funcs, and avoids wx exclusive hazards.
2022-11-20 12:04:02 -08:00
Unknown W. Brackets
ce51942508
softgpu: Correct WX-exclusive platform hazards.
...
Should mainly affect BSD at this point.
2022-11-20 10:55:35 -08:00
Unknown W. Brackets
79b1d1d35f
softgpu: Better approximate slope mip level mode ( #16276 )
...
* samplerjit: Remove unused x/y parameters.
Still need to tune the accuracy of filtering, but those were not the
right way.
* softgpu: Better approximate slope mip level mode.
This isn't exactly right, but it's closer.
* softgpu: Calculate auto from largest difference.
Direction shouldn't matter.
2022-10-23 10:15:43 +02:00
Unknown W. Brackets
1931fa2f5f
softgpu: Make triangle fan rect detection generic.
2022-10-16 16:01:09 -07:00
Unknown W. Brackets
6282f8b05f
softgpu: Expand texture coords to include q.
...
We'll need this to correctly project.
2022-09-26 17:13:14 -07:00
Unknown W. Brackets
8376176b2f
softgpu: Split clippos out of rasterization vert.
...
We don't use it, except w, at all in rasterization, so no need to keep it
in the bin queue.
2022-09-26 16:50:40 -07:00
Unknown W. Brackets
c47d7eab38
softgpu: Simply 5551 blending fast path.
...
Since it only supports multiply and add, let's just stick with that.
2022-09-24 18:55:45 -07:00
Unknown W. Brackets
1eeb4f0bcf
softpu: Refactor out 5551 fast path checks.
...
They were duplicated, and better to organize them according to state.
2022-09-24 18:55:45 -07:00
Unknown W. Brackets
f30b1d048d
softgpu: Avoid fast path in another wrong case.
...
Seen in Kurohyo. Missed that the alpha blend check essentially means only
standard blending can work.
2022-09-24 17:53:09 -07:00
Unknown W. Brackets
cefef3b4f9
softgpu: Narrow blend check for fast path further.
...
See #15756 , frame was largely black because of a full screen blend
rectangle intended to brighten the screen slighty (I assume.)
2022-09-20 14:29:33 -07:00
Unknown W. Brackets
de080e2594
softgpu: Simplify vertex range culling.
...
The previous logic was harder to understand and easier to get wrong.
Just drop them when clipping the primitive.
2022-09-18 06:16:25 -07:00
Unknown W. Brackets
9b01fce5b5
softgpu: Run early Z tests in fast rect path.
...
Needed for some 2D games, like Criminal Girls.
2022-09-17 13:37:54 -07:00
Unknown W. Brackets
1be5f1670c
softgpu: Remove mostly unused screen offset state.
...
This is now already cleaned up from coords, so no need to cache it.
2022-09-12 22:02:10 -07:00
Unknown W. Brackets
167213c746
softgpu: Cache texture bufws at 16 bit.
...
Reducing the size of state a bit.
2022-09-12 21:57:00 -07:00
Henrik Rydgård
2791ab3226
Merge pull request #16011 from unknownbrackets/softgpu-rect
...
Detect more triangles as rectangles in softgpu
2022-09-12 08:35:13 +02:00
Unknown W. Brackets
288d18447d
softgpu: Detect full triangles as rectangles.
...
Seen in a dump from Infected, improves FPS ~25% there.
2022-09-11 22:39:32 -07:00
Unknown W. Brackets
8a6e8066bf
softgpu: Store vertex colors as packed RGBA8.
...
No need to keep it expanded at 4x the space for both colors.
2022-09-11 18:41:06 -07:00
Unknown W. Brackets
2e3b73abaa
softgpu: Restrict sprite fast path to throughmode.
...
Its UV checks already should have generally, but let's be safe. It
doesn't validate state like fog, etc.
2022-09-11 08:22:37 -07:00
Henrik Rydgård
d86127ac5e
Merge pull request #15999 from unknownbrackets/softgpu-texsize
...
softgpu: Clamp/wrap textures at 512 pixels
2022-09-11 10:12:38 +02:00
Unknown W. Brackets
90e009edb9
softgpu: Clamp/wrap textures at 512 pixels.
...
A texture larger than 512 is "valid", but simply wraps/clamps at 512.
Importantly, the texture coords are still calculated at the specified
size, which can be up to 32768.
2022-09-10 20:23:09 -07:00
Unknown W. Brackets
f5f5c9ea87
softgpu: Avoid calling unordered coords tl/br.
...
These are just corners, we don't know if they're top or not at this point.
2022-09-10 14:58:27 -07:00
Unknown W. Brackets
13ca08b235
softgpu: Avoid over-aggressive rect conversion.
...
The TL and BR have to match between UVs and pos, not enough for UV to be
in order. This was causing an artifact on Chains of Olympus' title.
2022-09-10 14:56:13 -07:00
Unknown W. Brackets
e7d49cd7d0
softgpu: Allow almost flat rectangles to go fast.
...
Improves transform rectangles used in Chains of Olympus, for example on
the title screen.
2022-09-10 13:29:40 -07:00
Unknown W. Brackets
6004d4a459
softgpu: Refactor duplicate rectangle compat check.
...
This just moves the logic to a single place for changes.
2022-09-10 13:28:35 -07:00
Henrik Rydgård
a91219bebc
The Darkstalkers subpixel check should be == 0. Fixes #14953 again
2022-09-05 19:12:45 +02:00
Unknown W. Brackets
15b73b56bb
softgpu: Correct texture check in fastpath.
...
This is the no textures option, so we shouldn't check sampler state at
all. Presumably this was failing and reading uninitialized data...
2022-09-03 11:21:14 -07:00
Unknown W. Brackets
af004dd53d
softgpu: Validate alpha test properly for fastpath.
...
We don't want a weird LESS test being mishandled.
2022-09-03 11:19:24 -07:00
Unknown W. Brackets
ba1ced4992
softgpu: Avoid rect fast path with subpixel offset.
...
It doesn't handle it right, see #15876 . We still handle these with
DrawRectangle(), which gets it right.
2022-09-03 11:08:11 -07:00
Unknown W. Brackets
6737d69f0a
softgpu: Cleanup some now unused state.
2022-02-20 09:19:48 -08:00
Unknown W. Brackets
1bc3acf2ed
softgpu: Use a const for subpixel screenpos factor.
2022-02-19 21:03:49 -08:00
Unknown W. Brackets
a66377fdf1
softgpu: Remove offset from screenpos.
...
This simplifies tighter calculations, and reduces the common magnitudes
we'll be dealing with.
2022-02-19 20:38:44 -08:00