How to enable WebGL on Chrome on XP?

Solution 1:

GPU rendering has been removed in XP, so theoretically it's not possible to have WebGL.

WebGL worked in build 291943 (v39.0.2138.0), but was removed in build 291976 (v39.0.2138.0).

The changelog contains the culprit commit:

Remove the use of d3dcompiler_43.dll.
It was only used for GPU rendering on Windows XP, which is now blacklisted.
BUG=407177
Review URL: https://codereview.chromium.org/506633002

Effectively, build 291976 only contains d3dcompiler_46.dll, but not d3dcompiler_43.dll.

So I had a crazy idea:

  1. Install a new version of Chromium (with no WebGL)
  2. Replace its d3dcompiler_46.dll file with d3dcompiler_43.dll from build 291943

    This enables WebGL until build 297440 (v40.0.2175.0).

    However, it stops working again since build 297795 (version 40.0.2176.0).

    I looked at the changelog but couldn't find the culprit commit.

  3. Replace its libGLESv2.dll file with libGLESv2.dll from build 297440

    This enables WebGL until build 303843 (v41.0.2219.0).

    However, it stops working again since build 303851 (v41.0.2219.0).

    Given this changelog, the culprit seems this commit.

  4. Replace its libEGL.dll file with libEGL.dll from build 303843

    This enables WebGL until build 337003 (v45.0.2446.0).

    However, it stops working again since build 337025 (v45.0.2446.0).

    I looked at the this changelog but couldn't find the culprit commit.

  5. WebGL can be enabled again in build 337025 by replacing chrome.dll, chrome.exe, chrome_child.dll, natives_blob.bin and snapshot_blob.bin from build 337003.

    However, that seems too much. I don't recommend it.

Warning: doing any of the steps above might make Chromium behave unreliably. Use at own risk.

In the steps above, "replace [X].dll with [Y].dll from build [N]" means:

  1. Search the [X].dll file in the installation folder of Chromium
  2. If there is no such file, go to step 4
  3. Otherwise, rename the file to [X].backup.dll
  4. Download the portable (ZIP) version of the linked build [N]
  5. Extract the [Y].dll file from the downloaded ZIP
  6. Rename the extracted file to [X].dll
  7. Move that file to the installation folder of Chromium