2

My GPU is a NVIDIA GeForce 8400 GS. According to NVIDIA,

OpenGL® 2.1 Optimizations and Support:
Ensures top-notch compatibility and performance for OpenGL applications.

If I understand it correctly, that means it supports WebGL.

WebGL works on Firefox, both natively and through ANGLE. If I go to https://get.webgl.org/, it says

Your browser supports WebGL

However, on Chrome it says

While your browser seems to support WebGL, it is disabled or unavailable

I have checked that Use hardware acceleration when available is enabled and chrome://flags/#disable-webgl is disabled.

If I go to chrome://gpu/, Chrome says

WebGL: Unavailable

Problems Detected

  • GPU process was unable to boot: GPU process launch failed.
    Disabled Features: all
  • Always call glUseProgram after a successful link to avoid a driver bug: 349137
    Applied Workarounds: use_current_program_after_successful_link
  • Some drivers are unable to reset the D3D device in the GPU process sandbox
    Applied Workarounds: exit_on_context_lost
  • Disable use of Direct3D 11 on Windows Vista and lower
    Applied Workarounds: disable_d3d11
  • Clear uniforms before first program use on all platforms: 124764, 349137
    Applied Workarounds: clear_uniforms_before_first_program_use
  • Disable D3D11 on older nVidia drivers: 349929
    Applied Workarounds: disable_d3d11
  • Always rewrite vec/mat constructors to be consistent: 398694
    Applied Workarounds: scalarize_vec_and_mat_constructor_args
  • Raster is using a single thread.
    Disabled Features: multiple_raster_threads

I tried enabling chrome://flags/#ignore-gpu-blacklist, but nothing changed.

My OS is Windows XP Home SP3. On the same machine I also have Lubuntu 15.04, and there it works if I enable hardware acceleration.

Is there a way to enable it on XP?

9

2 Answers 2

2

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
2
  • how about windows 7 ?
    – Dariush
    Commented Jan 25, 2017 at 4:27
  • @Dariush I think Chrome is supposed to support WebGL on win7, you shouldn't need to do anything.
    – Oriol
    Commented Jan 25, 2017 at 4:35
0

d3dcompiler_46.dll and d3dcompiler_47.dll can easily work on XP using BlackWingCat's unofficial update KB2584577.

Google this: WindowsXP-KB2584577-v0.4-x86-ENU.exe

Also we can use WineD3D wrapper to wrap Direct3D9Ex to enable Chrome HW accel for XP.

2
  • Interesting, but I have updated to Win10, so I can't test. I think Chrome no longer supports XP anyways.
    – Oriol
    Commented May 23, 2016 at 19:22
  • 1
    This is that what MSFT and Google wanted from you, I think this is unfair.
    – Svyat
    Commented May 23, 2016 at 19:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .