Commit Graph

391 Commits

Author SHA1 Message Date
Henrik Rydgård 22fdf6624c Merge pull request #18986 from GermanAizek/static-const-methods
[GPU] Make static and const methods if possible
2024-04-05 16:20:06 +02:00
Herman Semenov b57dab2812 [GPU] Make static and const methods if possible 2024-04-05 17:04:31 +03:00
Henrik Rydgård 8960ed4d48 FramebufferManager: Allow "large offset" framebuffers priority over normal matches.
Fixes #18976
2024-04-03 00:59:36 +02:00
Henrik Rydgård 1fbf685504 Avoid vertically merging the two main framebuffers, even if FramebufferAllowLargeVerticalOffset is on. 2024-02-04 11:26:20 +01:00
Henrik Rydgård ea180e54c9 Fix some "double-binds" of the backbuffer.
These are already eliminated by the queuerunner, but better not to
generate them in the first place, for easier sanity checks.
2024-01-30 10:44:18 +01:00
Henrik Rydgård 51097279c9 Vulkan: Fix race condition when changing MSAA mode with the game running "behind" the menu. 2024-01-23 11:28:45 +01:00
Henrik Rydgård a6f041568b Allow merging framebuffers vertically like the old Juiced 2 fix.
Fixes Tokimeki Memorial 4 rendering.

Fixes #6379, see comments.
2023-12-30 22:40:07 +01:00
Henrik Rydgård 437b292b7d Tactics Ogre: Remove a redundant readback operation it performs a lot. 2023-12-21 12:37:34 +01:00
Henrik Rydgård 748193f227 Fix issue with misdetection of framebuffer copies.
Fixes #18512
2023-12-14 23:16:21 +01:00
Henrik Rydgård e62614498e Buildfix mac (name collision with NO...) 2023-12-13 16:48:07 +01:00
Henrik Rydgård caec201c4d Make "Skip GPU readbacks" a multi-choice option, for easier experimentation by users 2023-12-13 16:18:44 +01:00
Henrik Rydgård 8d8ff5886b Fix issue where nothing had started a render pass when we wanted to clear the screen. 2023-12-11 13:06:15 +01:00
Henrik Rydgård 26a51191b3 Cleaner solution to previous commit 2023-12-06 09:54:03 +01:00
Henrik Rydgård 8588b11a6a Rename MayIntersectFramebuffer to MayInteresectFramebufferColor 2023-12-06 09:42:44 +01:00
Henrik Rydgård 88f2657bb1 Allow block transfers from RAM to depth buffers.
Reuses the existing compat flag BlockTransferDepth.

I do aim to remove that compat flag in the future, it's probably not
even necessary here, it's just that general depth block transfers were
already gated on it.

Fixes #17878
2023-12-06 00:29:09 +01:00
Henrik Rydgård 6b8ec972fb A couple of warning fixes (real issues though small) 2023-12-05 01:12:42 +01:00
Henrik Rydgård d584162e06 Merge pull request #18462 from hrydgard/framebuffer-listing-overlay
Framebuffer listing overlay
2023-12-02 18:51:33 +01:00
Henrik Rydgård 6d977b4a12 Remove unnecessary struct FramebufferInfo 2023-12-02 13:56:18 +01:00
Henrik Rydgård 4ef54169af Add a compat.ini setting to allow delayed GPU readbacks, for experimentation. 2023-12-02 11:34:59 +01:00
Henrik Rydgård b636356f36 copy: Reverse the order of the y and seq heuristics 2023-12-01 20:40:12 +01:00
Henrik Rydgård cef17589d2 Move the oversize copy detection to a better location (less false positive) 2023-12-01 00:30:06 +01:00
Henrik Rydgård d9365a6df1 FramebufferCopy: New framebuffer candidate sorting, similar to block transfer detection.
The previous attempt was simply flawed.
2023-12-01 00:10:16 +01:00
Henrik Rydgård 7920e86098 Add heuristic, fixing video flicker in Naruto UNH 2 caused by copy to wrong target. 2023-11-30 22:19:52 +01:00
Henrik Rydgård dae758e5f4 Fix some bugs and mistakes found by Nemoumbra through static analysis 2023-11-26 13:43:11 +01:00
Henrik Rydgård 77825484a0 If available, use 16-bit texture formats for MakePixelTexture when appropriate.
Optimization for God of War on low-end platforms. Avoids calling a color
conversion function that's currently only SIMD-optimized on x86, so will
also benefit ARM a little bit.
2023-11-12 15:58:03 +01:00
Henrik Rydgård 49f5da370a Simplify the logic in MakePixelTexture a bit 2023-11-12 11:19:45 +01:00
Henrik Rydgård cc6f9a73ca Oops, fix for previous commit. And minor optimization. 2023-11-12 01:32:02 +01:00
Henrik Rydgård 632fa1c9d6 Cache and hash data for DrawPixels.
We already had a cache to reuse texture objects so just
opportunistically reuse them when easy to do so.
2023-11-11 19:58:12 +01:00
Henrik Rydgård 226d25721a Add a block transfer GPU stat, remove a redundant one 2023-10-03 13:15:55 +02:00
Henrik Rydgård 6600b7ab08 Improved logging 2023-09-12 17:15:26 +02:00
Henrik Rydgård 844f1de041 Revert "Merge pull request #18008 from hrydgard/naruto-video-flicker-heuristic"
This reverts commit 985af4b03d, reversing
changes made to 64d04782ea.
2023-09-12 12:19:37 +02:00
Henrik Rydgård 3e6788defe Merge pull request #18022 from hrydgard/screen-scaler-ingame-fix
Android: Fix changing display resolution scale in-game
2023-08-31 08:45:39 +02:00
Henrik Rydgård 4b89fab91c NativeInitGraphics: Update core parameter pixel width/height (since we lose resized flag) 2023-08-30 23:42:13 +02:00
Henrik Rydgård 131163bf4c Replace a too-simple heuristic with a compat flag.
Should fix the flicker in Castlevania.

Fixes #17517

The heuristic worked for Rainbow Six but broke Castlevania, so I'd rather
use a compat flag instead of breaking a different game until we can find a
more reliable heuristic for Rainbow Six.
2023-08-30 10:59:57 +02:00
Henrik Rydgård c563d4e57d NotifyFramebufferCopy: Pick the target framebuffer by scoring. 2023-08-29 12:53:18 +02:00
Henrik Rydgård e3bdf1a70b Add heuristic, fixing video flicker in Naruto UNH 2 caused by copy to wrong target. 2023-08-29 11:46:24 +02:00
Henrik Rydgård b4419a9146 Remove the old screen resolution popup thing 2023-07-16 17:05:26 +02:00
Henrik Rydgård eb21a2e6c9 Break out the OSD data holder from Common/System/System.h, into OSD.cpp/h 2023-06-30 17:15:49 +02:00
Henrik Rydgård 7cc8c6cea4 OSD: Add semantics, move the the OSD state to common (while keeping the renderer in the UI). 2023-06-20 14:40:46 +02:00
Henrik Rydgård e9e95d23ce VulkanDebug log fix, reduce log spam 2023-05-30 18:32:33 +02:00
Henrik Rydgård 49ecc01556 Fix image leak bug when pausing and we're just displaying a framebuffer in memory 2023-05-30 18:29:50 +02:00
Henrik Rydgård 7c4b9bac90 Cache textures created by MakePixelsTexture and reuse where appropriate. 2023-05-30 14:07:44 +02:00
Henrik Rydgård ea552bc573 Add a new GPU stat (DrawPixels), kinda heavy since creates textures. GoW does 20-ish per frame. 2023-05-30 10:15:34 +02:00
Henrik Rydgård 9512bc6174 Don't cache render target copies for shader blending, only cache copies for overlap
Fixes #17451, while also keeping the Dante performance fix from #17032.

Of course, it's possible that something else could slow down now... But
hopefully not. This could also fix other problems.
2023-05-11 12:04:29 +02:00
Unknown W. Brackets b4d55713cb GPU: Always update size when shrinking.
Previously, we only updated size when we didn't need to recreate.
This would sometimes cause it to recreate over and over, hurting perf.
2023-04-19 23:42:02 -07:00
Henrik Rydgård b1f8830bd8 Don't try to present from little temp framebuffers used by Godfather to draw text.
The framebuffer does contain the top of the video frame at the present
time though, so things have partially gone well. However the rest of the
frame lies after it in VRAM. What we probably technically should do when
we see this is to assemble an image from both the framebuffer we find
and VRAM contents exceeding the range of that image, but seems kinda
impractical.

This works, but there seems to be some other issue with how the text is
rendered or copied. Could be a color precision issue confusing the game
I suppose.
2023-04-17 12:24:31 +02:00
Henrik Rydgård ee6234ecb6 I18N: Switch to getting categories by index instead of by string lookup
Also gets rid of the shared_ptr usage, and generally makes things nicer.

Needed for later config refactorings, good to get in early.
2023-04-07 10:35:01 +02:00
Henrik Rydgård 8f96ec371e Rename iBufFilter -> iDisplayFilter 2023-04-05 09:34:18 +02:00
Henrik Rydgård d223d3c316 Rename CenterDisplayOutputRect to CalculateDisplayOutputRect 2023-04-02 22:29:08 +02:00
Henrik Rydgård f3076294b2 Merge pull request #17192 from unknownbrackets/saveicon-download
GPU: Add xfer flag to ignore create vfb flags
2023-03-26 08:51:27 +02:00