Skip to content

GS/HW: Add setting to do autoflush draws with a copy loop.#14305

Open
TJnotJT wants to merge 1 commit intoPCSX2:masterfrom
TJnotJT:gs-autoflush-detect
Open

GS/HW: Add setting to do autoflush draws with a copy loop.#14305
TJnotJT wants to merge 1 commit intoPCSX2:masterfrom
TJnotJT:gs-autoflush-detect

Conversation

@TJnotJT
Copy link
Copy Markdown
Contributor

@TJnotJT TJnotJT commented Apr 15, 2026

Description of Changes

Add a new autoflush setting ("batched autoflush") to do autoflush draws with a copy loop.

Rationale behind Changes

Can reduce draws and improve performance in autoflush heavy games such as Jak 2 (dump attached).

Does not always improve stats/performance, as it can interact negatively with heuristics such as tex-is-fb, TC aging, early alpha test abort, etc.

Should not cause graphical regression, though it can cause tiny pixel difference (compared to standard autoflush) due to interactions with texel rounding and tex-is-fb heuristics.

Suggested Testing Steps

Enable the setting using GUI Settings>Graphics>Hardware Fixes>Auto Flush>Batch Enabled (after checking "Manual Hardware renderer Fixes" in Settings>Graphics>Rendering).

Alternatively, add the following to PCSX2.ini:

[EmuCore/GS]
...
UserHacks = true
UserHacks_AutoFlushLevel = 3

Try games known to be heavy on autoflush with any HW renderer.

Jak.II_SCUS-97265_20230303034214.gs.xz.zip

Did you use AI to help find, test, or implement this issue or feature?

Some questions about DX12 usage during debugging.

@TJnotJT TJnotJT force-pushed the gs-autoflush-detect branch 8 times, most recently from ddd0cb7 to e56e9a1 Compare April 21, 2026 03:55
@TJnotJT TJnotJT force-pushed the gs-autoflush-detect branch 3 times, most recently from 68188d3 to 1a8b4ae Compare April 27, 2026 02:53
@TJnotJT TJnotJT marked this pull request as ready for review April 27, 2026 02:55
Only applies to certain autoflush draws.
@TJnotJT TJnotJT force-pushed the gs-autoflush-detect branch from 1a8b4ae to 91af850 Compare May 3, 2026 23:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant