Commit graph

33013 commits

Author SHA1 Message Date
Henrik Rydgård
24d674d2bc Shrink the TransitionRequest struct, use TinySet 2022-09-01 10:59:27 +02:00
Henrik Rydgård
bd71d8044b TinySet bugfix, add "append" 2022-09-01 10:59:24 +02:00
Henrik Rydgård
a854fbbe76 fbtex matching: Shrink the matching struct, use TinySet instead of vector to avoid an allocation. 2022-09-01 10:24:52 +02:00
Henrik Rydgård
608710f9f5
Merge pull request #15936 from hrydgard/framebuffer-cleanups
Framebuffer settings and block transfer speedup
2022-09-01 10:04:31 +02:00
Henrik Rydgård
1c9ec36fd8 Stricter checks for negative framebuffer offsets. Fixes #15937 2022-09-01 08:26:23 +02:00
Henrik Rydgård
470efac7d8 Merge GetFramebufferCandidates and GetBestCandidateIndex into one function. 2022-09-01 00:35:43 +02:00
Henrik Rydgård
a8a9fb4206 Much faster framebuffer matching (no more ToString every time there's more than 1 candidate, etc). 2022-08-31 14:23:56 +02:00
Henrik Rydgård
67d6549afd Rename Slow Framebuf effects to Shader Blending (might remove). Reassign readbacks to BlockTransferGPU. 2022-08-31 14:23:33 +02:00
Henrik Rydgård
437d6d30a0 KillZone: Fix margin detection on the title screen, fixing some glitches. Need more fixes though to fix the shimmer effect.
See #6207 comments
2022-08-31 11:40:42 +02:00
Henrik Rydgård
3168f8d119
Merge pull request #15934 from hrydgard/killzone-split-framebuffer
Split the main framebuffer in Killzone, to avoid texturing-from-current-rendertarget
2022-08-31 09:37:57 +02:00
Henrik Rydgård
0928d9d285 Extract the split code to a function 2022-08-31 09:12:52 +02:00
Henrik Rydgård
d99e4b6714 Quicker way to update the through projection matrix with the split framebuffer offset 2022-08-31 08:44:15 +02:00
Henrik Rydgård
95b299766e Cleanup (more to do, though) 2022-08-31 01:53:13 +02:00
Henrik Rydgård
a71a10bb6e Allow signed texture offsets on framebuffers 2022-08-31 01:46:58 +02:00
Henrik Rydgård
7186fc2c17 Offset the draws properly. Now just some texel clamping left to fix 2022-08-31 01:40:53 +02:00
Henrik Rydgård
70f7f74a05 Check X coordinate of through-mode drawcalls to figure out which of the splits to render to 2022-08-31 01:09:23 +02:00
Henrik Rydgård
1b3b1acefa Tweak ForceMax60Fps to work for Killzone 2022-08-30 20:10:44 +02:00
Henrik Rydgård
987bfc79ef Split the framebuffer in Killzone, with a compatibility flag.
Greatly improves performance.

See issue #6207
2022-08-30 20:05:56 +02:00
Henrik Rydgård
daa62beb39 Small tweak in texture matching. Fixes #15927 2022-08-30 16:14:47 +02:00
Henrik Rydgård
fd863beb96
Merge pull request #15930 from sum2012/kernel-minor
Fix sceKernelUnlockMutex timing
2022-08-30 15:34:59 +02:00
sum2012
75390be142 Fix sceKernelUnlockMutex timing
Fix https://github.com/hrydgard/ppsspp/issues/6557
2022-08-30 20:46:43 +08:00
Henrik Rydgård
59813fff6d
Merge pull request #15929 from hrydgard/fix-tex-replace-race
Fix race condition in replacement texture loading
2022-08-30 13:17:19 +02:00
Henrik Rydgård
340c75a2d9 Remove "DisableReadbacks" compat flag. MotoGP no longer needs it after BlockTransferAllowCreateFB was added. 2022-08-30 13:16:36 +02:00
Henrik Rydgård
ead833561b
Merge pull request #15926 from hrydgard/fix-framebuffer-read-dx9
Implement shader blending for D3D9
2022-08-30 13:01:04 +02:00
Henrik Rydgård
08eaf7665c Fix race condition in replacement texture loading
The texture could become valid during the load, causing an inconsistent
state within the texture loading. So can only check for valid-ness once.
2022-08-30 12:52:31 +02:00
Henrik Rydgård
a3287e07be
Merge pull request #15928 from hrydgard/texture-size-calc-fix
Clean up mip size calculations
2022-08-30 12:34:44 +02:00
Henrik Rydgård
4da2ca0935 Implement shader blending for D3D9
This was easy, dunno why I never got around to it before..
I guess I didn't know about VPOS.

This does raise our minimum shader model requirement to ps_3_0.
2022-08-30 12:19:56 +02:00
Henrik Rydgård
6f2966f502 Clean up mip size calculations
Calculating the same thing in multiple places is a recipe for bugs, so
let's not.
2022-08-30 12:05:57 +02:00
Henrik Rydgård
30dc831fc4
Merge pull request #15924 from hrydgard/prepare-depth-readback
Add support for reading depth buffers to the PackFramebufferSync function
2022-08-30 10:09:38 +02:00
Henrik Rydgård
ec00e8069a
Merge pull request #15925 from unknownbrackets/ge-disasm
GE Debugger: Improve display list disasm
2022-08-30 08:12:57 +02:00
Unknown W. Brackets
a569921716 GE Debugger: Improve display list disasm.
This makes many registers clearer, and corrects some that were totally
wrong like minz/maxz.
2022-08-29 22:58:13 -07:00
Henrik Rydgård
44d822be3b Address feedback 2022-08-30 06:41:37 +02:00
Henrik Rydgård
670c31e746 Add support for reading depth buffers to the PackFramebufferSync function.
Also adds D16 conversion code (though, could probably get away with just
creating a 16-bit depth buffer on the GPU and blit to it, where depth
blit is available).

Not yet used, just getting it in separately.
2022-08-30 00:00:59 +02:00
Henrik Rydgård
dee6ba0c1e
Merge pull request #15922 from hrydgard/remove-reinterpret-compat-flag
Remove reinterpret compat flag
2022-08-29 17:41:52 +02:00
Henrik Rydgård
847e05140b Add another stat, for self-tex 2022-08-29 17:41:29 +02:00
Henrik Rydgård
333df62691 Remove the reinterpret compat flag, now always on
Remove ini entries
2022-08-29 17:41:29 +02:00
Henrik Rydgård
2b1b9e5eb9
Merge pull request #15921 from hrydgard/more-gpu-stats
Fix OpenGL bug when framebuffer fetch is available. Add two new GPU stats.
2022-08-29 16:30:16 +02:00
Henrik Rydgård
f228de76ef Fix OpenGL bug when framebuffer fetch is available. Add two new stats. 2022-08-29 15:39:29 +02:00
Henrik Rydgård
59cb7a075f
Merge pull request #15920 from hrydgard/replace-get-vfb-at
Better framebuffer checks, remove all ways that framebuffer formats can change
2022-08-29 11:37:12 +02:00
Henrik Rydgård
cd37bffdaa Better framebuffer checks, remove all ways that framebuffer formats can change. 2022-08-29 11:06:45 +02:00
Henrik Rydgård
34ed960a72 Use better pattern for enum switches 2022-08-28 23:57:01 +02:00
Unknown W. Brackets
3e865abae6
Merge pull request #15917 from hrydgard/vulkan-bandwidth-opt
Vulkan bandwidth optimizations (configure renderpass load/store better)
2022-08-28 14:42:55 -07:00
Henrik Rydgård
b447092742 Some Vulkan renderpass load/store optimizations. 2022-08-28 23:16:48 +02:00
Henrik Rydgård
9b4e94c4ae Depal: Set scissor tightly around processed area. 2022-08-28 23:14:30 +02:00
Henrik Rydgård
fa1d2cfe8e
Merge pull request #15916 from unknownbrackets/ui-scissor
UI: Validate UI scissor inside bounds
2022-08-28 18:36:02 +02:00
Henrik Rydgård
e87b1c9ba8
Merge pull request #15915 from unknownbrackets/gpu-minor
GPU: Add a way to defer dirty rechecks
2022-08-28 18:10:02 +02:00
Unknown W. Brackets
da53ab8ef9 UI: Validate UI scissor inside bounds. 2022-08-28 09:01:35 -07:00
Unknown W. Brackets
f5efc1aa56 GPU: Make Spongebob hack checks more readable.
Multiline clauses are just a lie programmers tell themselves to make them
think they've written readable code, just because it's better than a
single line.

Also add comments while there, in case this causes problems.
2022-08-28 08:50:16 -07:00
Unknown W. Brackets
a8190f3eb4 GPU: Recheck depth/stencil after Spongebob hack.
Since we swap the compare, we should at least recheck it later.
2022-08-28 08:39:05 -07:00
Unknown W. Brackets
18e1efece1 GPU: Add a way to defer dirty rechecks.
These are situations where we have temporary state which will require
recalc again later.
2022-08-28 08:34:48 -07:00