Как включить WebGL на Chrome на XP?

10327
Oriol

Мой графический процессор - NVIDIA GeForce 8400 GS. По данным NVIDIA ,

Оптимизация и поддержка OpenGL® 2.1:
обеспечивает первоклассную совместимость и производительность для приложений OpenGL.

Если я правильно понимаю, это означает, что он поддерживает WebGL.

WebGL работает на Firefox как изначально, так и через ANGLE. Если я иду на https://get.webgl.org/, он говорит

Ваш браузер поддерживает WebGL

Однако на Chrome написано

Хотя ваш браузер поддерживает WebGL, он отключен или недоступен

Я проверил, что Use hardware acceleration when availableвключено и chrome://flags/#disable-webglотключено.

Если я пойду chrome://gpu/, говорит Chrome

WebGL: недоступно

Обнаружены проблемы

  • Процесс GPU не смог загрузиться: не удалось запустить процесс GPU.
    Отключенные функции: все
  • Всегда вызывайте glUseProgram после успешной ссылки, чтобы избежать ошибки драйвера: 349137
    Применяемые обходные пути: use_current_program_after_successful_link
  • Некоторые драйверы не могут сбросить устройство D3D в изолированной программной среде процесса GPU.
    Прикладные обходные пути: exit_on_context_lost
  • Отключите использование Direct3D 11 в Windows Vista и ниже
    Прикладные обходные пути: disable_d3d11
  • Очистите униформу перед первым использованием программы на всех платформах: 124764, 349137
    Прикладные обходные пути: clear_uniforms_before_first_program_use
  • Отключите D3D11 на старых драйверах nVidia: 349929
    Применяемые обходные пути: disable_d3d11
  • Всегда переписывайте конструкторы vec / mat, чтобы они были согласованы: 398694
    Применяемые обходные пути: scalarize_vec_and_mat_constructor_args
  • Растр использует одну нить.
    Отключенные функции: множественные_расширения

Я попытался включить chrome://flags/#ignore-gpu-blacklist, но ничего не изменилось.

Моя ОС - Windows XP Home SP3. На той же машине у меня также есть Lubuntu 15.04, и там он работает, если я включаю аппаратное ускорение.

Есть ли способ включить его на XP?

2
возможный дубликат [Как включить WebGL в моем браузере?] (http://superuser.com/questions/836832/how-can-i-enable-webgl-in-my-browser) MC10 9 лет назад 1
@ MC10 Моя проблема в том, что Chrome, кажется, считает, что WebGL недоступен. Это не рассматривается в другом вопросе. Oriol 9 лет назад 0
Хм, может быть, попробуйте переопределить его: https://productforums.google.com/forum/#!topic/chrome/ou3H55QuO8U MC10 9 лет назад 0
@ MC10 Я попытался включить `chrome: // flags / # ignore-gpu-blacklist`, чтобы переопределить его, но ничего не изменилось :( Oriol 9 лет назад 0
Кто-то здесь http://askubuntu.com/questions/299345/how-to-enable-webgl-in-chrome-on-ubuntu с той же картой предложил "У меня есть обходной путь: включите опцию" Отключить ускоренный 2D-холст "в хром: // флаги / `. MC10 9 лет назад 0
@ MC10 у меня не работает :( Oriol 9 лет назад 0
Вы обновили последние версии драйверов для вашей видеокарты? Вы используете достаточно современную операционную систему? Mokubai 9 лет назад 0
@Mokubai Кажется, это может быть ОС. У меня есть WinXP. Я попытался загрузиться в Lubuntu, и если я включил аппаратное ускорение, он работает. Oriol 9 лет назад 1
Да, это может больше не поддерживаться в Windows XP: https://productforums.google.com/forum/#!topic/chrome/Uw_ZJwQseKw MC10 9 лет назад 1

2 ответа на вопрос

1
Oriol

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
как насчет windows 7? Dariush 7 лет назад 0
@Dariush Я думаю, что Chrome должен поддерживать WebGL на win7, вам не нужно ничего делать. Oriol 7 лет назад 0
0
Svyat

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.

Интересно, но я обновился до Win10, поэтому не могу проверить. Я думаю, что Chrome больше не поддерживает XP в любом случае. Oriol 8 лет назад 0
Это то, что MSFT и Google хотели от вас, я думаю, это несправедливо. Svyat 8 лет назад 1

Похожие вопросы