github FelipePrado0/gow3_pc windows-v2.1.7-intel-test2
Test build intel-test2 on 2.1.7: GOW3_VK_DISABLE_EXT extension bisection (2.1.7-intel-test2)

windows-v2.1.7-intel-test2 (Intel Arc test build)

Test build for the shredded 3D scene on Intel Arc (A750, B580, Arc 140V, B390): #28 (open tracker; #39, #96 and #99 were closed as duplicates). Not a fix.

What it is

2.1.7 (the launcher still says 2.1.7) with nothing changed by default, plus test switches. Without the variable below, the game runs exactly like stock 2.1.7.

  • GOW3_VK_DISABLE_EXT: a comma-separated list of optional Vulkan device extension names (exact names, case matters), or all. Each listed extension is turned off when the game starts, and the renderer takes the same fallback it takes on a GPU that does not have it. The four required extensions are never turned off.

  • While the variable turns anything off, the pipeline cache and pipeline binaries on disk are skipped for that session: nothing is read or written, shaders compile from scratch (expect stutter), and the normal cache is untouched when the variable is gone.

  • Two lines are written to the log at any log level and identify the configuration:

    • GPU: device <name>, driver <id> <version>, Vulkan <x.y.z>; extensions off: <list or none> (GOW3_VK_DISABLE_EXT=<value or unset>)
    • GPU: optional extensions unavailable: <list or none>; ignored names: <list or none>

    ignored names lists names that had no effect: either mistyped, or not supported by this GPU (compare with the unavailable line from run A).

The LDS barriers and 32-lane subgroup pin from the earlier Intel test builds (windows-v2.1.6-intel-test1, windows-v2.1.6-test2, windows-v2.1.6-test3, windows-v2.1.7-test3, windows-v2.1.7-test4) are off by default in this build: they did not change the picture on the B580 or the B390. Their opt-in switches (GOW3_SUBGROUP_PIN, GOW3_LDS_BARRIERS) are not used in these runs; leave them out of the .bat. The log also prints a GPU: subgroup policy: ... line and, with GOW3_GPU_LOG=info, the subgroup size range (Physical device subgroup size ... (min to max ...)).

What we learned

On a GTX 1650, turning off the three extensions Intel lacks (VK_KHR_maintenance8, VK_EXT_attachment_feedback_loop_dynamic_state, VK_NV_framebuffer_mixed_samples) forces the three fallback paths only Intel takes, and the main menu still rendered correctly. So the port's fallback logic for the three paths is correct when NVIDIA runs it; an Intel driver issue in the same path (for example the depth-to-colour copy through a buffer, CopyImageWithBuffer) stays possible and only a RenderDoc capture on Intel can show it. The next question is whether one of the extensions Intel does expose is the cause.

Setup

  1. Extract the build into a new folder.
  2. Open the launcher once, choose the game folder, and press Clear shader cache.
  3. Start the game through a .bat file placed next to Play God of War III.exe (that executable is the one that writes user\last_run.log). Each run below has its complete .bat; save it as, for example, run-A.bat and double-click it.
  4. Go to the main menu and look at the 3D scene behind it (Kratos and the scenery).

Do not use GOW3_VK_DISABLE_EXT=all: on NVIDIA it crashes the game right after boot, and the crash traces to one or more of the four extensions in run D (not yet isolated). Those four get their own run so a crash can be told apart from a fix.

Runs (one at a time)

A: baseline, no extensions off

Records the GPU, driver and the extension list; confirms the symptom.

@echo off
set GOW3_GPU_LOG=info
start "" "Play God of War III.exe"

B: first half

@echo off
set GOW3_GPU_LOG=info
set GOW3_VK_DISABLE_EXT=VK_KHR_workgroup_memory_explicit_layout,VK_EXT_shader_stencil_export,VK_EXT_image_2d_view_of_3d,VK_EXT_vertex_input_dynamic_state,VK_EXT_extended_dynamic_state3,VK_EXT_provoking_vertex,VK_EXT_image_view_min_lod,VK_EXT_depth_range_unrestricted
start "" "Play God of War III.exe"

C: second half

@echo off
set GOW3_GPU_LOG=info
set GOW3_VK_DISABLE_EXT=VK_KHR_fragment_shader_barycentric,VK_EXT_shader_atomic_float,VK_EXT_shader_atomic_float2,VK_KHR_maintenance5,VK_EXT_memory_budget,VK_KHR_compute_shader_derivatives,VK_KHR_shader_clock
start "" "Play God of War III.exe"

D: the four crash candidates

@echo off
set GOW3_GPU_LOG=info
set GOW3_VK_DISABLE_EXT=VK_EXT_custom_border_color,VK_EXT_depth_clip_control,VK_EXT_depth_clip_enable,VK_EXT_primitive_topology_list_restart
start "" "Play God of War III.exe"

This run may crash, as all does on NVIDIA. If it crashes on your card too, say so and attach the log; a crash is not a fix.

What to report

For each run (A, B, C, D):

  • whether the main menu scene is still shredded (or, for D, whether the game crashed);
  • user\last_run.log attached. The GPU: device ... line in it shows which extensions were off, so no need to describe the configuration.

If B or C fixes the scene, that half gets split in two next, until one name is left.

Note on switching runs

Whenever the variable turns something off, the pipeline cache is skipped for that run: shaders compile from scratch, so the first minutes stutter more than usual. There is nothing to clear between runs, and run A (no GOW3_VK_DISABLE_EXT line, so the log says unset) uses the normal cache again.

Don't miss a new gow3_pc release

NewReleases is sending notifications on new releases.