Commit graph

267 commits

Author SHA1 Message Date
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
Henrik Rydgård
3be5c7bd9a Make the minimum items per thread explicit. Found some bugs, optional arguments are evil. 2021-06-12 21:21:28 +02:00
Henrik Rydgård
73871b9b7e Implement new thread manager, port stuff to it. 2021-06-12 13:03:53 +02:00
Unknown W. Brackets
8a8328c431 Common: Move ColorConv to a more appropriate place. 2021-05-01 11:20:05 -07:00
Unknown W. Brackets
4178f09e57 Build: More consistently avoid _M_ defines.
We use PPSSPP_ARCH in several places already, this makes it more complete.
2021-03-02 21:49:21 -08:00
Unknown W. Brackets
fb3ad1df4b Replacement: Read in texture filtering overrides.
If you're replacing, you can know more information about linear safety for
tests.
2021-02-27 17:16:16 -08:00
Unknown W. Brackets
f32f89dd90 Global: Remove some unused variables. 2021-02-15 11:59:45 -08:00
Henrik Rydgård
886a8b1ac6 Remove Timer.cpp/h. Move various collections into Common/Data/Collections. 2020-10-05 21:05:23 +02:00
Henrik Rydgård
821817e6d4 Move the profiler to Common 2020-10-04 11:42:16 +02:00
Henrik Rydgård
3162f30158 Merge base/basictypes.h into Common/Common.h (mostly). 2020-09-29 15:51:51 +02:00
Henrik Rydgård
cea35007ae Always use a linear filter for video, unless forcing NEAREST filtering. 2020-09-13 16:40:37 +02:00
Unknown W. Brackets
3055deeba6 GPU: Fix some case warnings.
Better to avoid the warnings.
2020-08-19 21:18:44 -07:00
Henrik Rydgård
c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Unknown W. Brackets
1b9440611a softgpu: Fix texture overlap.
Mainly happened when we had wide textures and split them up between GPUs.
2020-05-13 17:53:00 -07:00
Unknown W. Brackets
f1dfb25427 softgpu: Correct clear/solid rect BR corner.
The scissor is inclusive, not exclusive.
2020-03-09 18:57:55 -07:00
Henrik Rydgård
54823a87cc Oops 2019-10-28 13:13:52 +01:00
Henrik Rydgård
970adfbcc9 Isolate most of the softgpu specialization code to RasterizerRectangle.
See comments.
2019-10-28 09:33:30 +01:00
Henrik Rydgård
1966c8fe75 Fix a backwards check 2019-10-27 20:55:32 +01:00
Henrik Rydgård
102a70b4a5 Scissor fix 2019-10-27 20:55:32 +01:00
Henrik Rydgård
a84f4a0caa Even more speed. 2019-10-27 20:55:32 +01:00
Henrik Rydgård
eb53609cb0 More speed 2019-10-27 20:55:32 +01:00
Henrik Rydgård
bbbd7f8acc Buildfix 2019-10-27 20:55:32 +01:00
Henrik Rydgård
714f83f614 Further specialization. 2019-10-27 20:54:36 +01:00
Henrik Rydgård
290e9971a7 More specialization work. 2019-10-27 20:54:36 +01:00
Henrik Rydgård
2dd7a9aa12 More darkstalkers work 2019-10-27 20:54:36 +01:00
Henrik Rydgård
c7f6724f7e Detect sprite drawing (1:1 texture mapping), run a simpler function without the triangle state tracking.
This will allow further simplification and specialization.
2019-10-27 20:54:36 +01:00
Unknown W. Brackets
7412e13767 SoftGPU: Implement dithering.
Note: it applies even in 8888, so it can be used as a slight brightness
adjustment.
2019-05-26 09:52:34 -07:00
Unknown W. Brackets
0b48c6d066 SoftGPU: Apply color doubling only to RGB.
Broken in #11379 - accidentally applied to the alpha value.  See #11901
for an example where this caused issues with blending.
2019-03-16 19:40:33 -07:00
Unknown W. Brackets
0f880696be SoftGPU: Respect stencil write mask on test fail. 2018-12-16 13:13:54 -08:00
Unknown W. Brackets
3c5455f85b SoftGPU: Calculate texcoords in transform.
No need to do it in rasterization, and should be faster to do it on the
verts, anyway.  This fixes the software issue of #11595, presumably
because of the w handling.
2018-11-25 19:19:11 -08:00
Unknown W. Brackets
e664e1c1dd SoftGPU: Oops, properly apply pixel mask in 16-bit. 2018-11-23 07:57:39 -08:00
Unknown W. Brackets
10fa20cb06 SoftGPU: Fix pixel mask on rectangle clear.
Oops, had inverted it.  This caused it to improperly clear when masked.
2018-11-19 06:15:55 -08:00
Unknown W. Brackets
022670d882 GPU: Apply fog before color test.
Hardware tests confirm the fog result is what's color tested.
2018-09-09 23:59:48 -07:00
Unknown W. Brackets
703181607e GPU: Apply color test after doubling. 2018-09-09 20:09:48 -07:00
Unknown W. Brackets
8cdead90f9 SoftGPU: Preserve stencil inside logic op func.
Cleaning things up to make it easier to translate.
2018-09-09 18:11:37 -07:00
Unknown W. Brackets
772ed30288 SoftGPU: Avoid extra lookup of old stencil. 2018-09-09 17:00:12 -07:00
Unknown W. Brackets
2388be544f Debugger: Fix crash in softgpu with no texaddr yet. 2018-09-04 21:54:25 -07:00
Unknown W. Brackets
44b90f638d SoftGPU: Apply pixel mask for clears.
Turns out it's respected even in clear mode.

Also, confirm logic op and blending interact.
2018-08-24 20:55:49 -07:00