Skip to content

v1.4.3 - Fix Skia texture creation crash and restore ANGLE dylibs in Helium

Choose a tag to compare

@khoinguyen88kt khoinguyen88kt released this 25 Sep 11:45
· 15 commits to main since this release

馃悰 Bug Fixes

1. Fix Patch 6 False Positive Corrupting Skia Texture Creation (Chrome, Brave, Helium)

  • In v1.4.2, the loosened dynamic regex for Patch 6 (ScopedEGLSurfaceIOSurface::ValidateTarget) inadvertently matched GetGrBackendTexture in Chromium's gpu/command_buffer/service/skia_utils.cc.
  • Because GetGrBackendTexture was overwritten with mov al, 1; ret, every call from IOSurfaceImageBacking::ProduceSkiaGanesh returned an uninitialized/invalid texture object.
  • This triggered:
    SharedImageManager::ProduceSkia: Trying to produce a Skia representation from an incompatible backing: CompoundImageBacking
    Restarting GPU process due to unrecoverable error. Context was lost.
    
    leading to consecutive GPU crashes and Chrome/browsers permanently disabling hardware acceleration (--use-gl=disabled).
  • Fix: Patch 6 now strictly anchors to the 0x130 stack allocation frame of ValidateTarget (\x48\x81\xec\x30\x01\x00\x00) and checks already-applied status first, completely eliminating false positives against GetGrBackendTexture (which has a 0x170 stack frame).

2. Restore ANGLE Dylibs Injection in Helium Browser

  • Fixed an issue in HeliumPatcher.pre_patch_hook which failed to invoke super().pre_patch_hook().
  • Consequently, libEGL.dylib and libGLESv2.dylib were not being copied into Helium Framework.framework/Versions/.../Libraries/, causing ANGLE initialization failures and blank/white page rendering on complex WebUI / canvas pages.
  • Calling super().pre_patch_hook() ensures clean ANGLE dylibs are properly injected and verified.

馃殌 How to Update

Run in your terminal:

python3 patch.py --update
python3 patch.py all --force