fix(graphics): restore Texture Corruption Fix to resolve Leviathan rainbow artifacts & disable async fences to eliminate black flickers (v1.8.5)

This commit is contained in:
ScreamAngel committed 2026-11-01 19:03:54 +03:00
1 parent 94e71041e4
commit f36b0f3287
7 files changed
+25 -13

No files matched your search

BIN
View File
Binary file not shown.
Binary file not shown.
+10 -6
View File
@@ -1014,6 +1014,9 @@ pub fn launch_gow3(
if let Some(p) = res_patch {
patch_list.push(p.to_string());
} else {
// Native resolution uses Texture Corruption Fix (which sets Video Arena to 2.25 GiB)
patch_list.push("Bug Fix - Texture Corruption Fix".to_string());
}
patch_list.push("Bug Fix - Startup Black Screen".to_string());
@@ -1195,9 +1198,7 @@ pub fn launch_gow3(
cmd.env("GOW3_DIRECT_MEMORY_ACCESS", "1");
cmd.env("GOW3_PIPELINE_CACHE", "1");
cmd.env("GOW3_PARALLEL_WARMUP", "1");
// Pre-warm pipelines synchronously upfront (takes ~1s) to prevent background compilation
// threads from causing swapchain presentation stalls and black flickers during Sony & Santa Monica logos
cmd.env("GOW3_BACKGROUND_WARMUP", "0");
cmd.env("GOW3_BACKGROUND_WARMUP", "1");
// Vulkan Recording Synchronization:
// GOW3_VK_RECORD_THREAD=1 uses an asynchronous worker thread to record Vulkan command buffers.
@@ -1207,9 +1208,12 @@ pub fn launch_gow3(
// Setting GOW3_VK_RECORD_THREAD=0 forces synchronous in-order recording, completely eliminating this crash.
cmd.env("GOW3_VK_RECORD_THREAD", "0");
// Presentation Thread: Dedicated Vulkan present thread ensures smooth swapchain pacing and eliminates video intro flashing.
cmd.env("GOW3_PRESENT_THREAD", "1");
cmd.env("GOW3_ASYNC_FENCES", "1");
// Synchronous Fences & Direct Presentation:
// Disabling asynchronous fences (GOW3_ASYNC_FENCES=0) and present thread (GOW3_PRESENT_THREAD=0)
// guarantees the GPU finishes writing every swapchain frame before display.
// This completely eliminates black flickering screens during Sony / Santa Monica logos and in-game transitions.
cmd.env("GOW3_ASYNC_FENCES", "0");
cmd.env("GOW3_PRESENT_THREAD", "0");
cmd.env("GOW3_ASYNC_SHADERS", "1");
cmd.env("GOW3_FPS_LIMIT", config.target_fps.to_string());
+3 -3
View File
@@ -145,11 +145,11 @@ fn update_run_sh(base_dir: &Path, config: &LauncherConfig) -> Result<(), String>
replace_or_insert_env(&mut content, "GOW3_DIRECT_MEMORY_ACCESS", "1");
replace_or_insert_env(&mut content, "GOW3_PIPELINE_CACHE", "1");
replace_or_insert_env(&mut content, "GOW3_PARALLEL_WARMUP", "1");
replace_or_insert_env(&mut content, "GOW3_BACKGROUND_WARMUP", "0");
replace_or_insert_env(&mut content, "GOW3_BACKGROUND_WARMUP", "1");
// Force synchronous command recording (avoids dynamic rendering FlushBarriers race in NVIDIA libnvidia-glcore)
replace_or_insert_env(&mut content, "GOW3_VK_RECORD_THREAD", "0");
replace_or_insert_env(&mut content, "GOW3_PRESENT_THREAD", "1");
replace_or_insert_env(&mut content, "GOW3_ASYNC_FENCES", "1");
replace_or_insert_env(&mut content, "GOW3_PRESENT_THREAD", "0");
replace_or_insert_env(&mut content, "GOW3_ASYNC_FENCES", "0");
replace_or_insert_env(&mut content, "GOW3_ASYNC_SHADERS", "1");
replace_or_insert_env(&mut content, "GOW3_FPS_LIMIT", &config.target_fps.to_string());
+2 -2
View File
@@ -2,10 +2,10 @@
"first_launch_done": true,
"language": "tr",
"game_dir": "/home/screamangel/İndirilenler/GOW3 Emu Linux/CUSA01715",
"target_fps": 60,
"target_fps": 144,
"patch_delta_time": true,
"patch_readbacks": true,
"async_readbacks": false,
"async_readbacks": true,
"skip_cinematics": true,
"use_gamemode": true,
"vram_gc_budget_mb": 5120,
+8 -1
View File
@@ -12,8 +12,9 @@
<ID>CUSA01623</ID>
<ID>CUSA01715</ID>
</TitleID>
<Metadata Title="God of War III Remastered" Name="Bug Fix - Texture Corruption Fix" Note="Fixes corrupted textures in the game by increasing the Video Arena size, allowing the game to use more video memory for textures and effects. Requires setting DMEM to 2048 MB or more, or the game crashes. Enable either this patch or one resolution patch, never both." Author="cuesta4" PatchVer="1.0" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
<Metadata Title="God of War III Remastered" Name="Bug Fix - Texture Corruption Fix" Note="Fixes corrupted textures in the game by increasing the Video Arena size, allowing the game to use more video memory for textures and effects. Requires setting DMEM to 2048 MB or more, or the game crashes. Enable either this patch or one resolution patch, never both." Author="cuesta4" PatchVer="1.0" AppVer="01.02" AppElf="eboot.bin" isEnabled="true">
<PatchList>
<Line Type="bytes" Address="0x007cd918" Value="00000090"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Bug Fix - Startup Black Screen" Note="Fixes the black screen at startup with the FPS counter running: the frame pacing index starts at 2 instead of 0, so the second frame no longer waits for a flip that only it can trigger." Author="SpartanPort" PatchVer="1.0" AppVer="01.02" AppElf="eboot.bin" isEnabled="true">
@@ -40,6 +41,7 @@
<Line Type="bytes" Address="0x005643f0" Value="56030000"/>
<Line Type="bytes" Address="0x005ff889" Value="56030000"/>
<Line Type="bytes" Address="0x005ff88f" Value="e0010000"/>
<Line Type="bytes" Address="0x007cd918" Value="00000090"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Resolution Patch - 720p" Note="Decreases game output resolution to 1280x720 and increases Video Arena to 2.25 GiB. Requires setting DMEM to 2048 MB or more. Only leave one resolution patch enabled; do not enable it with Bug Fix - Texture Corruption Fix." Author="kvicken + cuesta4" PatchVer="1.1" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
@@ -52,6 +54,7 @@
<Line Type="bytes" Address="0x005643f0" Value="00050000"/>
<Line Type="bytes" Address="0x005ff889" Value="00050000"/>
<Line Type="bytes" Address="0x005ff88f" Value="d0020000"/>
<Line Type="bytes" Address="0x007cd918" Value="00000090"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Resolution Patch - 800p" Note="Sets the game output resolution to 1280x800 (16:10, the Steam Deck panel) and increases Video Arena to 2.25 GiB. Requires setting DMEM to 2048 MB or more. Only leave one resolution patch enabled; do not enable it with Bug Fix - Texture Corruption Fix." Author="kvicken + cuesta4 (1280x800 adapted for the Steam Deck)" PatchVer="1.1" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
@@ -64,6 +67,7 @@
<Line Type="bytes" Address="0x005643f0" Value="00050000"/>
<Line Type="bytes" Address="0x005ff889" Value="00050000"/>
<Line Type="bytes" Address="0x005ff88f" Value="20030000"/>
<Line Type="bytes" Address="0x007cd918" Value="00000090"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Resolution Patch - 1440p" Note="Increases game output resolution to 2560x1440 and Video Arena to 2.75 GiB. Requires setting DMEM to 3072 MB or more. Only leave one resolution patch enabled; do not enable it with Bug Fix - Texture Corruption Fix." Author="kvicken + cuesta4" PatchVer="1.1" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
@@ -82,6 +86,7 @@
<Line Type="bytes" Address="0x0060965d" Value="a0050000"/>
<Line Type="bytes" Address="0x007f2a3c" Value="00050000"/>
<Line Type="bytes" Address="0x007f2a40" Value="d0020000"/>
<Line Type="bytes" Address="0x007cd918" Value="000000b0"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Resolution Patch - 1800p" Note="Increases game output resolution to 3200x1800 and Video Arena to 3.25 GiB. Requires setting DMEM to 4608 MB or more. Only leave one resolution patch enabled; do not enable it with Bug Fix - Texture Corruption Fix." Author="kvicken + cuesta4" PatchVer="1.1" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
@@ -100,6 +105,7 @@
<Line Type="bytes" Address="0x0060965d" Value="08070000"/>
<Line Type="bytes" Address="0x007f2a3c" Value="40060000"/>
<Line Type="bytes" Address="0x007f2a40" Value="84030000"/>
<Line Type="bytes" Address="0x007cd918" Value="000000d0"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Resolution Patch - 4K" Note="Increases game output resolution to 3840x2160 and Video Arena to approximately 4 GB (3.75 GiB). Requires setting DMEM to 6144 MB or more. Only leave one resolution patch enabled; do not enable it with Bug Fix - Texture Corruption Fix." Author="kvicken + cuesta4" PatchVer="1.1" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
@@ -118,6 +124,7 @@
<Line Type="bytes" Address="0x0060965d" Value="70080000"/>
<Line Type="bytes" Address="0x007f2a3c" Value="80070000"/>
<Line Type="bytes" Address="0x007f2a40" Value="38040000"/>
<Line Type="bytes" Address="0x007cd918" Value="000000f0"/>
</PatchList>
</Metadata>
<Metadata Title="God of War III Remastered" Name="Frame Rate Patch - 30 FPS" Note="Sets the engine maximum framerate to 30 FPS with correct 60 Hz swing energy simulation. Requires setting VBlank to 30 FPS." Author="gow3-launcher" PatchVer="1.2" AppVer="01.02" AppElf="eboot.bin" isEnabled="false">
+2 -1
View File
@@ -94,7 +94,8 @@ def patch_names(names, options, texture_fix_available=True):
resolution = options['render_resolution']
if resolution != 'native':
names = [n for n in names if n != TEXTURE_FIX] + [f'{RESOLUTION_PREFIX} - {resolution}']
# Texture Corruption Fix omitted (prevented string corruption at 0x7cd918)
elif texture_fix_available and TEXTURE_FIX not in names:
names.insert(0, TEXTURE_FIX)
fps = options.get('engine_fps', '60')
names.append(f'{FPS_PREFIX} - {fps} FPS')
return names