protonscr

Resident Evil 0 HD Remaster - Graphical glitch after leech zombie event (color lines + grayscale filter)

dxvkclosed wine bugd3d9not our bug
doitsujin/dxvk#5576 · opened 2026-04-08 by pascaltll · updated 2026-04-09 · 4 comments · github
1 matching comments, n / p to jump
Ppascaltll 2026-04-08 github

Game: Resident Evil 0 / Biohazard 0 HD Remaster (Steam AppID: 339340)

Environment:

  • Hardware: ASUS ROG Ally (AMD Radeon 780M)
  • OS: Bazzite (Fedora-based, immutable)
  • Proton: 9.0 Beta / Proton 10.0
  • DXVK version: bundled with Proton

Description:
After the first leech zombie cutscene on the train (early in the game), a persistent graphical glitch appears for the rest of the train section:

  • Colored diagonal lines (red, green, blue) overlaid across the entire scene
  • Background rendered in grayscale/desaturated
  • Characters render correctly
  • The glitch is tied to the 3D world (lines move with the camera)
  • Does NOT occur on Windows with native D3D9

Affected shader identified via apitrace:

Pixel shader 0x381fd1c0 (CreatePixelShader call #329) contains this sequence:

// Parameters: CBROPTest__packed0 (c1), fGUIUVClamp (c2), SSGUI__tGUIBaseMap (s0)
ps_3_0
def c0, -1, -0, 0, 0
dcl_texcoord v0
dcl_texcoord1 v1.xy
dcl_2d s0
add r0.xy, -c2, c2.zwzw
rcp r1.x, r0.x
rcp r1.y, r0.y
mul r0.xy, r1, v1
frc r0.zw, r0_abs.xyxy
cmp r0.xy, r0, r0.zwzw, -r0.zwzw
lrp r1.xy, r0, c2.zwzw, c2
texld r0, r1, s0
mul r0.xyz, r0, r0
mul r1, r0, v0
mad r0.x, r0.w, -v0.w, c1.x
cmp r0, r0.x, c0.x, c0.y
texkill r0
rsq r0.x, r1.x
rsq r0.y, r1.y
rsq r0.z, r1.z
rcp oC0.x, r0.x   // = sqrt(r1.x)
rcp oC0.y, r0.y   // = sqrt(r1.y)
rcp oC0.z, r0.z   // = sqrt(r1.z)
mov oC0.w, r1.w

The rsq + rcp combination is used to compute sqrt(x) (since 1/rsq(x) = sqrt(x)). This translation appears to be handled incorrectly by DXVK, producing wrong color values that manifest as the colored lines and grayscale rendering.

A second affected shader is 0x38222c60 (gamma correction shader, CreatePixelShader call #478) which also uses rsq+rcp for sqrt calculation.

Reproduction:

  1. Launch RE0 HD via Steam with Proton on Linux
  2. Start a new game or load a save after the first leech zombie event on the train
  3. The glitch is immediately visible and persists for the entire train section

apitrace available: Yes — trace captured on Windows (GOG version, no DRM) using apitrace 32-bit, covering the affected section. Can be shared if needed.

Additional notes:

  • This bug is also reported on Steam Deck with SteamOS
  • Older Proton GE 7.49 used to fix it but no longer works with current versions
  • The issue does not occur on Windows with native DirectX 9
BBlisto91 2026-04-09 github

Thank you for the report. Would be great if you could share the apitrace yeah.

Ppascaltll 2026-04-09 github
KK0bin maintainer 2026-04-09 github

Unfortunately your apitrace seems to be corrupted. It seems like it fails to create the device:

30 @2 IDirect3DDevice9::SetRenderState(this = 0x328f16a0, State = D3DRS_ALPHABLENDENABLE, Value = FALSE) = D3D_OK
30: warning: unknown object 0x328f16a0

Could you upload your save?

EDIT:

Never mind, I just played far enough myself. Now I have a save that is right next to a room that shows the issue and I made my own apitrace.

KK0bin maintainer 2026-04-09 github

This is a Wine bug.

  • WineD3D has the same issue when replaying an apitrace made on Linux.
  • When I install DXVK with the game on Windows it renders correctly.

Apitrace made with DXVK on Linux:

Image

Replaying an Apitrace, that was made with DXVK on Windows, on Linux:

Image

Proton versions