WEBGL_draw_buffers не поддерживается в Chrome 37

У меня проблемы с получением расширения webgl WEBGL_draw_buffers на хром. Мой GPU определенно должен поддерживать несколько буферов отрисовки, Firefox поддерживает расширение, но Chrome не перечисляет его. Есть ли причина пропавшей поддержки?

Общая информация

  • Браузер: Chrome 37.0.2062.102 м (тот же результат с версиями 36 и 38)
  • Командная строка браузера: Files (x86)\Google\Chrome\Application\chrome.exe" --flag-switches-begin --js-flags=--harmony --enable-webgl-draft-extensions --flag-switches-end
  • Операционная система: Windows 8.1 Pro
  • GPU: NVS 3100M (версия драйвера 327.02)
  • Записная книжка: ThinkPad T410
  • Другие люди, кажется, получают WEBGL_draw_buffers поддержка на Chrome
  • Я не нашел никакой информации об ошибках Chrome, связанных с отключением нескольких буферов отрисовки.

доступны расширения webgl

GL_OES_element_index_uint GL_OES_packed_depth_stencil GL_OES_get_program_binary GL_OES_rgb8_rgba8 NV_pixel_buffer_object GL_OES_mapbuffer GL_EXT_map_buffer_range GL_OES_standard_derivatives GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_float GL_OES_texture_float_linear GL_EXT_texture_rg GL_OES_texture_npot GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_storage GL_EXT_frag_depth GL_EXT_blend_minmax GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_NV_fence

chrome:// проблемы с gpu

Problems Detected
GPU rasterization is whitelisted on N4, N5, N7 and Moto X: 362779
Disabled Features: gpu_rasterization
Additional GPU rasterization whitelist for field trial: 380694
Disabled Features: gpu_rasterization_field_trial
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
TexSubImage2D() is faster for full uploads on ANGLE
Applied Workarounds: texsubimage2d_faster_than_teximage2d
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Threaded rasterization has not been enabled or is not supported by the current system.
Disabled Features: threaded_rasterization

2 ответа

Я не знаю точных причин, но как указывает Ян, они не широко доступны

Дело не только в том, поддерживает ли это графический процессор. В течение долгого времени OSX приводил к сбою ОС, если MRT были настроены неправильно, поэтому он не был включен в OSX. Они все еще не включены на моем Retina MBP под управлением 10.9.4 (OSX Mavericks)

Typing

document.createElement("canvas").getContext("webgl").getSupportedExtensions().join("\n")

в консоли JavaScript печатает

"ANGLE_instanced_arrays
EXT_texture_filter_anisotropic
WEBKIT_EXT_texture_filter_anisotropic
OES_element_index_uint
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
WEBGL_compressed_texture_s3tc
WEBKIT_WEBGL_compressed_texture_s3tc
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBKIT_WEBGL_depth_texture
WEBGL_lose_context
WEBKIT_WEBGL_lose_context"

Поэтому я предполагаю, что они до сих пор не нашли способ остановить сбой ОС при неправильной настройке MRT. Сука для Apple и других производителей драйверов.

Игры и приложения не имеют этой проблемы, потому что они, конечно, не хотят сбивать ваш компьютер, а также потому, что вы устанавливаете их вручную, но браузеры не могут позволить случайным веб-страницам разбить ваш компьютер, поэтому они не могут включить эти функции, пока не смогут найдите способ предотвратить сбои или до тех пор, пока драйверы / ОС не прекратят сбои при их использовании.

По данным сайта webgl stats только около 20% пользователей имеют WEBGL_draw_buffers расширение включено, поэтому определенно не все версии Chrome поддерживают расширения по умолчанию.

Все версии Chrome для Linux и Mac должны быть включены, если графический процессор поддерживает несколько целей рендеринга. В случае Windows, только некоторые версии Chrome поддерживают расширение. Chrome в Windows не работает хорошо для всех пользователей с бэкендом рендеринга D3D11, бэкэнд D3D9 по-прежнему используется в большинстве случаев и не поддерживает несколько целей рендеринга.

Вы можете заставить Chrome использовать D3D11 с --enable-d3d11 флаг.

Другие вопросы по тегам