468 Commits

Author SHA1 Message Date
Henrik Rydgård 5f13bc061a Color readback: Read the previous framebuffer instead of the one being switched to 2023-02-07 23:13:36 +01:00
Henrik Rydgård b3e6b81e43 Implement delayed depth readbacks for Vulkan only 2023-02-07 23:13:36 +01:00
Henrik Rydgård 23049533b9 Restore GetDepthBuffer precision - the stretchy-color-readback path is not suitable for this. 2023-02-05 22:58:26 +01:00
Henrik Rydgård 937975000b Add a ReadbackMode parameter to more functions in the FramebufferManager 2023-02-05 13:57:45 +01:00
Henrik Rydgård 92f4de7b74 Small cleanup. Let's reduce the number of readback paths. 2023-02-05 13:57:45 +01:00
Henrik Rydgård 4427cb4fc3 Add parameter to thin3d::CopyFramebufferToMemory to specify blocking mode. Not yet implemented. 2023-02-04 23:40:36 +01:00
Henrik Rydgård 281b0d6aab Quick fix for the lens flare in Burnout
We have to assume that ForceLowerResolutionForEffects has been set for
good reason - in this case, the effect probably can't safely function
without it.

Fixes #11100 once again.
2023-02-04 18:01:53 +01:00
Henrik Rydgård 236611ac16 Initial implementation of depth readback for Syphon Filter. Fixes the lens flares. 2023-02-04 13:54:57 +01:00
Henrik Rydgård 62484f01ed Make ReadbackFramebufferSync able to use the stretch ability of ReadbackDepthbufferSync 2023-02-04 12:05:50 +01:00
Henrik Rydgård c7234aa3b5 Handle scaling internally in ReadFramebufferSync 2023-02-04 11:36:48 +01:00
Henrik Rydgård 23c8a79473 Make depth readback through the "color path" work on all backends except D3D9 2023-02-03 20:59:58 +01:00
Henrik Rydgård f2a6c744bc Add built-in stretch functionality to depth readback shader path 2023-02-03 19:06:40 +01:00
Serena 30f6296767 Remove some Windows + Qt stuff + meow 2023-01-27 19:12:41 +03:00
Henrik Rydgård e1a48d74c4 A bit more GetPointer cleanup.
Probably not worth it for performance reasons, but some semantic cleanup
is good, especially the accidental GetPointer -> writable casts without
using GetPointerWrite.

Using Unchecked on already checked pointers, or when we'd crash anyway
if it returned nullptr, is good for clarity.
2023-01-10 12:13:47 +01:00
Unknown W. Brackets e5d67119a8 GPU: Avoid bloom hack on buffers used for depth.
If a buffer even has depth transferred to it, let's avoid lowering its
resolution.
2023-01-05 18:00:43 -08:00
Henrik Rydgård a5747d53b3 Fix some report spam 2023-01-02 22:23:50 +01:00
Unknown W. Brackets 49f6c461ad Reporting: Fix some header includes.
Particularly in Common, avoid including Core/Reporting.h.
2022-12-27 14:58:20 -08:00
Henrik Rydgård 11366a2ded Don't refer directly to g_Config.iMultiSampleLevel, it can contain unsupported modes. 2022-12-14 16:43:37 +01:00
Unknown W. Brackets 1810692236 Global: Cleanup some type/range checks. 2022-12-10 21:13:37 -08:00
Unknown W. Brackets a7b7bf7826 Global: Set many read-only params as const.
This makes what they do and which args to use clearer, if nothing else.
2022-12-10 21:13:36 -08:00
Henrik Rydgård 3e9f62a3a4 Minor fixes 2022-12-10 12:28:56 +01:00
Henrik Rydgård 4ec1e2a175 Some minor initialization fixes, and one potential crash found by static analysis 2022-12-10 11:28:19 +01:00
Henrik Rydgård 7aab096791 LittleBigPlanet: Compat flag to work around smoke rendering problem
See #16030

Hopefully just for the release. There might be a tweak of our heuristics
that can fix it too, but much riskier at this point.
2022-12-07 13:29:47 +01:00
Henrik Rydgård 8567416be6 Force "Lower resolution for effects" off in Ratchet & Clank and a few other games
It breaks or just makes things look terrible in these games, so no
reason to allow it.

An alternative for this would be to remove the option entirely, and only
use it though the ForceLowerResolutionForEffectsOn flag instead.
2022-12-03 23:35:54 +01:00
Henrik Rydgård 35777d5eef Use proper copies for depth blits between multisampled framebuffers. Needed to keep all the information. 2022-12-02 15:26:29 +01:00
Henrik Rydgård 8a3e92aa38 Not pretty, but with this, you can switch MSAA level at runtime. 2022-12-01 23:41:31 +01:00
Henrik Rydgård b9ea8de135 Use raster copies to work around lack of working copy support in MSAA mode. 2022-12-01 22:49:00 +01:00
Henrik Rydgård e3679df6cf Fix switching between MSAA levels 2022-12-01 22:49:00 +01:00
Henrik Rydgård 4dfce4f6bc Basically working MSAA on desktop GPUs! Some glitches remain. 2022-12-01 22:49:00 +01:00
Henrik Rydgård 06af304c8d Multisampling groundwork 2022-12-01 22:49:00 +01:00
Henrik Rydgård 331d024a8c Add a flags parameter to InvalidateCachedState and rename it Invalidate.
Also rename the old InvalidationFlags enum to InvalidateCallbackFlags.
2022-12-01 19:15:38 +01:00
Henrik Rydgård 390bf3e912 Fix Burnout Dominator lens flare on OpenGL ES
Not the prettiest solution, but works: Use R8_UNORM as a fallback
if R16_UNORM is not available.
2022-11-29 13:05:18 +01:00
Henrik Rydgård 0b375bb357 Colin McRae: Use compat flag to avoid GPU readbacks for VRAM->VRAM copies.
Improves performance when the sun is visible, see #7810
2022-11-26 18:53:13 +01:00
Henrik Rydgård 6d9bb1b29e Move post-processing settings to DisplayLayoutScreen 2022-11-22 23:29:50 +01:00
Lubos 70d30d1cf6 OpenXR - Aspect ratio of menu background fixed 2022-11-22 21:49:52 +01:00
Henrik Rydgård eff4118769 One more refactoring step 2022-11-21 14:54:48 +01:00
Henrik Rydgård 7596713059 Refactor: Split up updating the display and render size. 2022-11-21 14:35:12 +01:00
Unknown W. Brackets 47e5df3844 GPU: Prefer raster for depth blit if supported.
This seems to work around an apparent NVIDIA driver bug.
2022-11-17 18:32:38 -08:00
Henrik Rydgård c91e7912bf Change "Simulate block transfer" to "Skip GPU Readbacks". Group the speed hacks together 2022-11-06 19:30:38 +01:00
Henrik Rydgård 519db766b6 Change "Rendering Mode" to just a "Skip buffer effects" checkbox. Reuse translations. 2022-11-06 19:26:56 +01:00
Henrik Rydgård 524e92374f Use arrays more consistently. 2022-10-27 11:05:59 +02:00
Henrik Rydgård 91259aaad7 Always use array textures for framebuffers in Vulkan for simplicity. 2022-10-27 11:05:58 +02:00
Henrik Rydgård 0de12f5ca9 Some refactoring of framebuffer views, layer issues, more work. 2022-10-27 11:05:58 +02:00
Henrik Rydgård fb250c4b29 More multiview work 2022-10-27 11:05:58 +02:00
Henrik Rydgård cafce7365b Vulkan: Fix frame ordering issue with postprocessing shaders
Requested an init command buffer outside the frame, which is dangerous
and caused validation problems with command pool resets.

Would like to assert on insideFrame in GetInitCmd, but we use it from
some init code where it does work correctly. Might clean that up at some
point.
2022-10-21 12:52:21 +02:00
Henrik Rydgård 90d395a10d Remove "attachment" parameter from BindFramebufferAsTexture everywhere.
Not actually useful since our framebuffer objects don't support multiple
color images, and probably won't ever need to.
2022-10-20 10:15:19 +02:00
Henrik Rydgård daca0b2109 Rename gstate_c.Supports to gstate_c.Use 2022-10-17 08:46:37 +02:00
Henrik Rydgård 901f698a10 Merge pull request #16201 from unknownbrackets/gedebugger
GE Debugger: Normalize framebuffer texture preview
2022-10-11 11:33:19 +02:00
Henrik Rydgård 804220afb1 Merge pull request #16198 from unknownbrackets/gles-stencil
Readback stencil buffer for debugger on GLES
2022-10-11 10:55:38 +02:00
Henrik Rydgård baa9451cb7 Warning fixes 2022-10-11 09:55:53 +02:00