Unknown W. Brackets
423ec76258
softgpu: Correct texsize flush annotation.
2022-01-16 21:09:43 -08:00
Unknown W. Brackets
83adc44c2b
softgpu: Heuristic to avoid over-draining.
...
Some games (i.e. VC3) benefit from an early drain, since they get more
done while processing more verts. Others finish the draw quickly, and
then cause significant overhead in queueing new threads.
This attempts to balance the two, and improves Call of Duty and Blade
Dancer.
2022-01-16 21:09:28 -08:00
Henrik Rydgård
bdc69f5171
Merge pull request #15317 from unknownbrackets/softgpu-lighting
...
softgpu: Precompute lighting parameters
2022-01-17 01:06:35 +01:00
Unknown W. Brackets
1764111a4b
softgpu: Reduce wasted memory.
2022-01-16 11:49:41 -08:00
Unknown W. Brackets
2797e035df
softgpu: Precompute lighting parameters.
...
In many cases, games use lighting just for diffuse or something, this
helps skip what's not needed too. Good improvement in a scene from a
Naruto game.
2022-01-16 11:27:53 -08:00
Unknown W. Brackets
cb5ac04d16
softgpu: Tune some queue sizes for perf.
...
Using a chunk of RAM for this, but mostly with many threads.
2022-01-16 11:27:43 -08:00
Unknown W. Brackets
d95475e021
softgpu: Expose flush reasons/times in debug stats.
2022-01-16 11:27:42 -08:00
Unknown W. Brackets
7e5f03eed1
softgpu: Reduce flushing for smaller textures.
2022-01-16 08:23:52 -08:00
Unknown W. Brackets
86749a3fe0
softgpu: Flush block xfer only on overlap too.
2022-01-16 08:23:17 -08:00
Unknown W. Brackets
2de7993dc5
softgpu: Decorate some stats for flushes.
2022-01-16 08:23:15 -08:00
Unknown W. Brackets
cc155ec460
softgpu: Avoid texture/CLUT flush unless overlap.
...
Only need to flush here if there's some overlap in the target.
2022-01-16 08:22:13 -08:00
Unknown W. Brackets
9466dc6397
softgpu: Flush on offset changes.
2022-01-16 08:14:10 -08:00
Unknown W. Brackets
d6fa301ab1
softgpu: Track CLUTs as states for binning.
...
This way we can have multiple CLUTs in process at once, which helps.
2022-01-16 08:14:09 -08:00
Henrik Rydgård
ba63d9cf09
Merge pull request #15312 from unknownbrackets/softgpu-state
...
softgpu: Fix alpha blend with one/zero
2022-01-16 10:32:28 +01:00
Unknown W. Brackets
18f2a45a6a
softgpu: Allow binning across prim calls.
2022-01-16 00:49:49 -08:00
Henrik Rydgård
9bef900cd7
Merge pull request #15311 from unknownbrackets/softgpu-state
...
Avoid gstate references in rasterizerization
2022-01-16 09:40:25 +01:00
Unknown W. Brackets
2ad7d8ed29
softgpu: Fix alpha blend with one/zero.
...
Wasn't setting the fixed value constants in these cases, so need to handle
in the C++ version.
2022-01-16 00:38:49 -08:00
Unknown W. Brackets
fc292b127b
softgpu: Correct dither matrix lookup.
...
Oops, need to wrap x/y, of course...
2022-01-15 23:51:21 -08:00
Unknown W. Brackets
6da7765309
softgpu: Correct logic op state update.
2022-01-15 22:31:28 -08:00
Unknown W. Brackets
b42ebe15d8
softgpu: Fix off-by-one size limit on bin queues.
2022-01-15 21:59:23 -08:00
Unknown W. Brackets
2539fb7c3c
softgpu: Tune queue push/pop to reduce overhead.
...
These aren't safetly atomic with concurrent pushers or poppers, but as
long as there's only one of each, they're still safe.
Shaves a decent % off Drain time for heavy scenes.
2022-01-15 20:18:49 -08:00
Unknown W. Brackets
6896a7a64e
softgpu: Use cached state for screen offset.
2022-01-15 18:20:25 -08:00
Unknown W. Brackets
edb79d968f
softgpu: Cache CLUT params in sampler state.
...
And now there's no more gstate for pixel drawing or sampling. Just a
little left in rasterization.
2022-01-15 18:09:09 -08:00
Unknown W. Brackets
c0e85e6170
softgpu: Move texenv color into sampler state.
2022-01-15 17:52:40 -08:00
Unknown W. Brackets
ad3635c82a
softgpu: Move tex size to cached state.
2022-01-15 17:22:43 -08:00