shadPS4/src
TheTurtle 2d1a2982df
buffer_cache: Bring back upload batching and temporary buffer (#3211)
* buffer_cache: Bring back upload batching and temporary buffer

Because that PR fused the write and read protections under a single function call, it was a requirement to move the actual memory copy part inside the lambda to perform it before the read protection kicks in. However on certain large data transfers it had potential for data corruption. If, for example, an upload had two copies, a 400MB and a 300MB one, the first one would fit in the staging buffer, very likely with an induced stall. However the second one wouldn't have space to fit alongside the other data, but it's also small enough for the buffer to fit it, so the staging buffer would cause a flush and wait to copy it, overwriting the previous transfer.

To address this the upload function has been reworked to allow for batching like previously but with the new locking behavior. Also the condition to use temporary buffers has been expanded to also include cases when staging buffer will stall, which should increase performance a little in some cases.

* buffer_cache: Move buffer barriers and copy outside of lock range
2025-07-08 10:32:39 +03:00
..
common video_out: Internal Resolution Support (#3194) 2025-07-07 19:17:56 +03:00
core IME fixes (#3207) 2025-07-08 01:04:16 +03:00
images Favorites in the game list (#2649) (#3071) 2025-06-22 12:53:47 +03:00
imgui devtools: persist fsr configs (#2852) 2025-04-27 13:32:29 -03:00
input Remove accidentally left in debug logging from touchpad input emulation 2025-06-30 21:53:45 +02:00
qt_gui video_out: Internal Resolution Support (#3194) 2025-07-07 19:17:56 +03:00
shader_recompiler uber fix 2025-07-07 13:37:08 +03:00
video_core buffer_cache: Bring back upload batching and temporary buffer (#3211) 2025-07-08 10:32:39 +03:00
.clang-format chore: Make shadps4 REUSE compliant 2024-02-23 23:33:43 +02:00
emulator.cpp video_out: Internal Resolution Support (#3194) 2025-07-07 19:17:56 +03:00
emulator.h Add support for game folder and fail early if eboot.bin is missing or corrupt (#3027) 2025-06-03 13:34:29 +03:00
main.cpp qt: save gui settings to separate file (#2984) 2025-06-12 13:27:52 +03:00
sdl_window.cpp Controller Remapping GUI v2 (#3144) 2025-06-27 15:55:52 +02:00
sdl_window.h Gui: Adding Pause button working, full screen button and labels to buttons on main window gui (#2634) 2025-03-26 23:50:52 +02:00
shadps4.qrc Favorites in the game list (#2649) (#3071) 2025-06-22 12:53:47 +03:00
shadps4.rc [Windows] Adding Properties to the Executable (#2789) 2025-04-17 09:43:14 +03:00