2

Мой графический процессор - 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 ответа2

2

Рендеринг с помощью графического процессора был удален в XP, поэтому теоретически использовать WebGL невозможно.

WebGL работал в сборке 291943 (v39.0.2138.0), но был удален в сборке 291976 (v39.0.2138.0).

Список изменений содержит коммит преступника:

Удалите использование d3dcompiler_43.dll.
Он использовался только для рендеринга с помощью графического процессора в Windows XP, которая сейчас занесена в черный список.
BUG = 407177
URL отзыва: https://codereview.chromium.org/506633002

По сути, сборка 291976 содержит только d3dcompiler_46.dll , но не d3dcompiler_43.dll .

Так что у меня возникла безумная идея:

  1. Установите новую версию Chromium (без WebGL)
  2. Замените его файл d3dcompiler_46.dll файлом d3dcompiler_43.dll из сборки 291943

    Это включает WebGL до сборки 297440 (v40.0.2175.0).

    Тем не менее, он перестает работать снова, начиная с сборки 297795 (версия 40.0.2176.0).

    Я посмотрел на журнал изменений, но не смог найти виновного.

  3. Замените свой файл libGLESv2.dll с libGLESv2.dll из сборки 297440

    Это включает WebGL до сборки 303843 (v41.0.2219.0).

    Тем не менее он перестает работать снова, начиная с сборки 303851 (v41.0.2219.0).

    Принимая во внимание этот журнал изменений, виновник, кажется, этот коммит.

  4. Замените свой файл libEGL.dll с libEGL.dll из сборки 303843

    Это включает WebGL до сборки 337003 (v45.0.2446.0).

    Тем не менее он перестает работать снова, начиная с сборки 337025 (v45.0.2446.0).

    Я посмотрел на этот список изменений, но не смог найти коммит.

  5. WebGL может быть включен снова в строй 337025, заменив chrome.dll chrome.exe chrome_child.dll natives_blob.bin и snapshot_blob.bin от сборки 337003.

    Тем не менее, это кажется слишком много. Я не рекомендую это.

Предупреждение: выполнение любого из указанных выше шагов может привести к ненадежному поведению Chromium. Используйте на свой страх и риск.

В приведенных выше действиях «заменить [X].dll на [Y].dll из build [N] » означает:

  1. Найдите файл [X].dll в папке установки Chromium.
  2. Если такого файла нет, перейдите к шагу 4
  3. В противном случае переименуйте файл в [X].backup.dll
  4. Загрузите портативную (ZIP) версию связанной build [N]
  5. Извлеките файл [Y].dll из загруженного ZIP
  6. Переименуйте извлеченный файл в [X].dll
  7. Переместите этот файл в папку установки Chromium
0

d3dcompiler_46.dll и d3dcompiler_47.dll могут легко работать на XP с помощью неофициального обновления BlackWingCat KB2584577.

Google это: WindowsXP-KB2584577-v0.4-x86-ENU.exe

Также мы можем использовать оболочку WineD3D, чтобы обернуть Direct3D9Ex, чтобы включить ускорение Chrome HW для XP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .