Unknown W. Brackets
3180e6c043
softgpu: Correct alpha on add + invalid texfuncs.
2021-12-05 16:28:37 -08:00
Unknown W. Brackets
325a1f75aa
softgpu: Match texenv blend texfunc accurately.
2021-12-05 16:09:26 -08:00
Unknown W. Brackets
0b6e7c421f
softgpu: Make decal tex func more accurate.
...
Tested for all values of A * B + 0 * (255 - B), as well as A * 127 + B *
(255 - 127), and matches accurately. Spot checked other values, but not
exhaustively.
2021-12-05 13:34:19 -08:00
Unknown W. Brackets
73460f7461
softgpu: Correct accuracy of MODULATE texfunc.
...
This matches hardware tests for every value of A * B.
Interesting that it's a different formula than alpha blend.
2021-12-05 12:06:52 -08:00
Unknown W. Brackets
891fa8c613
softgpu: Template away uncommon mip usage.
...
Improves general case about 10%.
2021-12-04 15:45:06 -08:00
Unknown W. Brackets
48e9404419
softgpu: Remove useless switch by UV gen mode.
...
They're all handled earlier now, and the switch is on a value & 3, so the
default wasn't even possible.
2021-12-04 15:45:06 -08:00
Unknown W. Brackets
823c4adb15
softgpu: Keep arguments in vectors for sampling.
2021-12-04 15:45:06 -08:00
Unknown W. Brackets
96a7554053
sofjit: Move common types to reg cache header.
...
This makes it easier to use vectors elsewhere.
2021-11-28 08:03:15 -08:00
Unknown W. Brackets
91787e63d9
softjit: Switch to the __vectorcall convention.
2021-11-26 08:21:11 -08:00
Unknown W. Brackets
ce5ae95854
softgpu: Correct alpha blend subtract on negative.
...
Oops, we need to subtract signed, but then clamp to unsigned.
2021-11-25 22:06:48 -08:00
Unknown W. Brackets
35444b3051
softgpu: Accurately alpha blend.
2021-11-25 19:23:41 -08:00
Unknown W. Brackets
876c8cd368
softgpu: Fix PixelFuncID size.
...
Oops, can't use unions in bitfields. Also improve typesafety.
2021-11-21 09:40:13 -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
Henrik Rydgård
824805ec1e
Merge pull request #15154 from unknownbrackets/softjit
...
Use a pixel func ID in software rendering
2021-11-21 10:50:06 +01:00
Unknown W. Brackets
e2f0713cc2
softgpu: Clamp and round fog by mantissa bits.
...
This matches hardware calculated fog values much better.
2021-11-20 20:54:52 -08:00
Unknown W. Brackets
9abf2a4725
softgpu: Confirm mask doesn't hit stencil REPLACE.
2021-11-20 18:53:51 -08:00
Unknown W. Brackets
f7a31c992d
softgpu: Use pixel func ID to draw pixels.
...
This just reduces reliance on gstate directly, and should help keep things
consistent.
2021-11-20 15:27:04 -08:00
Unknown W. Brackets
b6bdd69572
softgpu: Clear by dividing out subpixel first.
2021-11-15 06:26:11 -08:00
Unknown W. Brackets
f802c3bc6d
softgpu: Add some comments and cleanup.
2021-11-15 06:09:12 -08:00
Unknown W. Brackets
babd63c644
softgpu: Tune thread minimums better.
...
Darkstalkers seems more sensitive to these than many other games, this
improves performance more.
2021-11-14 18:44:30 -08:00
Unknown W. Brackets
66f635cba0
sfotgpu: Use threads to apply clears.
2021-11-14 18:31:46 -08:00
Unknown W. Brackets
f66e243727
softgpu: Correct scissor for pixel centers.
2021-11-07 11:19:41 -08:00
Unknown W. Brackets
fe440d40e5
softgpu: Clip full weighted Z without truncating.
...
In case wsum_recip is nan or similar, we want to make sure we still
properly clip to minz/maxz.
2021-11-05 21:36:38 -07:00
Unknown W. Brackets
f03fa2b0b8
softgpu: Improve accuracy of line drawing.
...
Needs higher precision to change pixel at the right time.
This makes the lines in Persona 1 look right, see #3871 .
2021-11-04 00:11:09 -07:00
Unknown W. Brackets
7addc18a6b
softgpu: Avoid overflow infinite loop.
...
For certain large values, it would overflow and continue looping
endlessly.
2021-09-05 23:24:08 -07:00