Unknown W. Brackets
3e4afe2a0c
samplerjit: Avoid RCX gymanstics with BMI2.
2022-01-31 22:33:09 -08:00
Unknown W. Brackets
4cadcea6da
samplerjit: Decode colors with BMI2.
...
This only happens with nearest, though, so very small benefit.
2022-01-31 22:05:34 -08:00
Unknown W. Brackets
367525f875
softjit: Use PEXT to downsample colors.
...
This gives between 1-2% in many games.
2022-01-31 21:40:54 -08:00
Unknown W. Brackets
10bf375712
softjit: Use BMI2 to speed up dst color loads.
...
This is about 1% overall gain in some games.
2022-01-31 21:27:51 -08:00
Unknown W. Brackets
ad43380ef6
softjit: Use BMI to simplify some masking.
2022-01-31 19:50:48 -08:00
Unknown W. Brackets
2479d52202
Global: Reduce includes of common headers.
...
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
Unknown W. Brackets
1b2cf52bfe
samplerjit: Fix non-shared CLUT on Linux.
...
Oops, good that CI will catch this now - I've broken this more than once.
2022-01-29 22:20:46 -08:00
Unknown W. Brackets
a40d32d581
samplerjit: Validate compile in a unit test.
2022-01-29 20:31:18 -08:00
Unknown W. Brackets
26a8d498d7
samplerjit: Correct level lookup in nearest.
2022-01-29 20:29:43 -08:00
Unknown W. Brackets
3387ab1711
samplerjit: Fix reg corruption in DXT funcs.
...
We'd cache something in a reg, but it'd no longer be there.
2022-01-29 20:29:08 -08:00
Unknown W. Brackets
d200ef40de
samplerjit: Compile sampler funcs together.
...
We can't have the cache clear between nearest/linear, because then we'll
call a bunch of int3's.
2022-01-29 20:28:20 -08:00
Unknown W. Brackets
0d93200faf
softjit: Add tests for compile success.
2022-01-29 18:47:36 -08:00
Unknown W. Brackets
3dde3efa9f
softjit: Fix stencil bug running out of regs.
...
To apply the stencil test mask, we need another gen reg.
2022-01-29 18:31:40 -08:00
Unknown W. Brackets
ce775af76d
softgpu: Skip new CLUT if identical.
...
Games often reupload CLUT data that is already there, this skips some
copying later in the bin manager.
2022-01-29 12:55:34 -08:00
Unknown W. Brackets
5976cad797
samplerjit: Reduce register waste.
...
A few registers were allocated longer than needed, which made requiring
stack more likely.
2022-01-29 09:47:06 -08:00
Unknown W. Brackets
eb70a90347
samplerjit: Avoid frac uv transfer to gen regs.
...
It should just stay in vec, this is more convenient anyway.
2022-01-28 23:50:54 -08:00
Henrik Rydgård
54053b6b8b
Merge pull request #15347 from unknownbrackets/samplerjit-opt
...
Improve samplerjit code a bit with mipmaps
2022-01-26 09:19:06 +01:00
Unknown W. Brackets
e82b54e4b6
softgpu: Cull no-pos and through s8 pos verts.
...
Seems like these just don't draw anything, ever.
2022-01-25 19:29:11 -08:00
Unknown W. Brackets
61e30e8f8b
softgpu: Fix cull in throughmode.
...
Was only an issue for triangles used to draw rectangles, but caused our
test to fail.
Also move a test that was failing due to an outdated prx to passing.
2022-01-25 19:07:33 -08:00
Unknown W. Brackets
99d6d569f0
samplerjit: Reduce transfers in nearest texel calc.
...
This benefits a few games, mostly where there's lots of UI or similar.
2022-01-24 21:28:04 -08:00
Unknown W. Brackets
c1e657ed47
samplerjit: Better vectorize UV linear calc.
...
Gives about 1-2% when mips are used.
2022-01-24 20:42:07 -08:00
Unknown W. Brackets
733046962f
samplerjit: Reuse XMM reg for sizes.
...
Gives just under 1% overall improvement in games using mips.
2022-01-24 19:01:23 -08:00
Henrik Rydgård
0e2f5d66b6
Merge pull request #15345 from unknownbrackets/softgpu-blend
...
Fix some minor softgpu blending bugs
2022-01-24 09:37:59 +01:00
Henrik Rydgård
fbc965fb59
Merge pull request #15343 from unknownbrackets/gpu-region
...
GPU: Log and report when region1 is non-zero
2022-01-24 09:18:17 +01:00
Henrik Rydgård
1c18c172a1
Merge pull request #15339 from unknownbrackets/softgpu-flags
...
Use dirty flags for softgpu state updates
2022-01-24 09:17:37 +01:00
Unknown W. Brackets
07b67ef572
softgpu: Fix pixel ID for invalid blend factors.
...
They should still be treated as FIX, we were accidentally using our
special values.
2022-01-24 00:08:33 -08:00
Unknown W. Brackets
6c723c0517
softjit: Fix src blend factor handling.
...
This was causing us to skip a shift, oops.
2022-01-24 00:05:00 -08:00
Henrik Rydgård
eba93f2ee0
Merge pull request #15340 from unknownbrackets/softgpu-textures
...
Correct UV rotation and through mipmaps, optimize texenv blend a bit
2022-01-24 08:19:34 +01:00
Unknown W. Brackets
8efb99801e
GPU: Log and report when region1 is non-zero.
2022-01-23 19:38:51 -08:00
Unknown W. Brackets
818d17183b
softgpu: Correct clear mode dither.
...
It does apply, but have to be careful about alpha.
2022-01-23 12:39:50 -08:00
Unknown W. Brackets
3010cd56d1
softgpu: Correct simple rectangles with mipmaps.
...
Might be used for fonts, we could potentially check for bias/slope, but
mipmaps are uncommon in direct through draws anyway.
2022-01-23 12:26:58 -08:00
Unknown W. Brackets
d8c5c35b1a
samplerjit: Optimize texenv blending a bit.
...
This reduces to a single multiply, which is much faster.
2022-01-23 11:43:34 -08:00
Unknown W. Brackets
648b71616e
softgpu: Correct UV rotation for transformed rects.
2022-01-23 08:15:15 -08:00
Unknown W. Brackets
d74001f4fa
softgpu: Reuse transform state.
2022-01-23 08:08:41 -08:00
Unknown W. Brackets
9ea5367a8c
softgpu: Add dirty flags for rasterization state.
2022-01-23 08:08:41 -08:00
Unknown W. Brackets
a27da25cd6
softgpu: Use dirty flags for render overlap checks.
2022-01-23 08:08:40 -08:00
Unknown W. Brackets
77db9c818f
softgpu: Fix state race on screen offset.
...
Caused glitches in Motorstorm.
2022-01-23 08:08:40 -08:00
Unknown W. Brackets
76f9103e97
softgpu: Add a table and initial dirty flags.
...
Not actually using the dirty flags to skip state, but have moved to
Execute_* functions and everything else like other graphics backends.
2022-01-23 08:08:40 -08:00
Henrik Rydgård
5a6bf8b435
Merge pull request #15338 from unknownbrackets/ge-debugger
...
Alow flushing at will via the GE debugger
2022-01-23 00:30:52 +01:00
Unknown W. Brackets
eb95b99523
GE Debugger: Add option to auto flush.
...
This makes it easier to see what's happening in each draw.
2022-01-22 13:12:59 -08:00
Unknown W. Brackets
4262e657b4
samplerjit: Oops, forgot about 64 unpack.
...
Just a minor codegen tweak. Always forget there are more of these than
pack instructions.
2022-01-22 10:49:36 -08:00
Unknown W. Brackets
0425b8d630
samplerjit: Fix Linux stack corruption.
...
Oops, nearest was not using the red zone correctly.
2022-01-22 10:47:32 -08:00
Henrik Rydgård
b5e8c21042
Merge pull request #15334 from unknownbrackets/headless
...
Update pspautotests, require passing in GitHub Actions
2022-01-22 09:36:30 +01:00
Unknown W. Brackets
ce0e872d37
softgpu: Define constexpr var for older C++.
2022-01-22 00:14:15 -08:00
Unknown W. Brackets
212e730e98
samplerjit: Fix some Linux register issues.
2022-01-22 00:14:15 -08:00
Unknown W. Brackets
c0c3f7284a
softgpu: Avoid flush texturing from stride.
...
This generally detects overlap more accurately using a dirty rectangles
approach. Also detects render to self much more accurately, including
with depth.
2022-01-20 18:39:01 -08:00
Unknown W. Brackets
dec0ba7b79
softgpu: Flush framebuf only on change.
...
Sometimes games are reasserting the same framebuf, which was causing
unnecessary flushing.
2022-01-20 17:02:23 -08:00
Unknown W. Brackets
c4c54730bf
softgpu: Remove bin asserts.
...
These are active in release and used in tight loops.
2022-01-20 16:59:38 -08:00
Unknown W. Brackets
55c11425e4
softgpu: Use persistent bin task state.
...
It's constant, so it's better to avoid the copying and allocation. A
small win, but removes new from the profile.
2022-01-20 16:58:43 -08:00
Unknown W. Brackets
3e4d768e7a
softgpu: Pack vertexdata a bit better.
...
This reduces the BinItem size by 15%.
2022-01-19 23:17:09 -08:00