Firefox doesn't recognize GPU capabilities
Categories
(Core :: Graphics: CanvasWebGL, defect, P3)
Tracking
()
People
(Reporter: nn1436401, Unassigned)
Details
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
Steps to reproduce:
https://alteredqualia.com/tmp/webgl-maxparams-test/
According to this website, Firefox doesn't provide detect GPU correctly and doesn't provide all extensions available.
This makes Firefox to work much slower compared to Chrome.
Tests show that Chrome renders pages about 1.5x faster using less resources.
Actual results:
Firefox 93.0:
WebGL MAX parameters support
Max Vertex Attributes: 16
Max Varying Vectors: 15
Max Vertex Uniform Vectors: 2047
Max Fragment Uniform Vectors: 512
Max Fragment Texture Image Units: 8
Max Vertex Texture Image Units: 8
Max Combined Texture Image Units: 30
Max 2D Texture Size: 8192
Max Cube Texture Size: 8192
Max Texture Anisotropy: 16
Point Size Range: 1 - 1024
Line Width Range: 1 - 1
Max Viewport Dimensions: 32767 - 16383
Max Renderbuffer Size: 16384
Framebuffer Red Bits: 8
Framebuffer Green Bits: 8
Framebuffer Blue Bits: 8
Framebuffer Alpha Bits: 8
Framebuffer Depth Bits: 24
Framebuffer Stencil Bits: 8
Framebuffer Subpixel Bits: 4
MSAA Samples: 4
MSAA Sample Buffers: 1
Supported Formats for UByte Render Targets : RGBA RGB
Supported Formats for Half Float Render Targets: RGBA
Supported Formats for Full Float Render Targets: RGBA
Max Multiple Render Targets Buffers: 8
High Float Precision in Vertex Shader: 23 (-2127 - 2127)
Medium Float Precision in Vertex Shader: 23 (-2127 - 2127)
Low Float Precision in Vertex Shader: 23 (-2127 - 2127)
High Float Precision in Fragment Shader: 23 (-2127 - 2127)
Medium Float Precision in Fragment Shader: 23 (-2127 - 2127)
Low Float Precision in Fragment Shader: 23 (-2127 - 2127)
High Int Precision in Vertex Shader: 0 (-231 - 230)
Medium Int Precision in Vertex Shader: 0 (-231 - 230)
Low Int Precision in Vertex Shader: 0 (-231 - 230)
High Int Precision in Fragment Shader: 0 (-231 - 230)
Medium Int Precision in Fragment Shader: 0 (-231 - 230)
Low Int Precision in Fragment Shader: 0 (-231 - 230)
Supported Extensions: ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_half_float
EXT_float_blend
EXT_frag_depth
EXT_shader_texture_lod
EXT_sRGB
EXT_texture_compression_bptc
EXT_texture_compression_rgtc
EXT_texture_filter_anisotropic
OES_element_index_uint
OES_fbo_render_mipmap
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
WEBGL_color_buffer_float
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
WebGL Renderer: ANGLE (NVIDIA GeForce GTX 480 Direct3D11 vs_5_0 ps_5_0)
WebGL Vendor: Mozilla
WebGL Version: WebGL 1.0
Shading Language Version: WebGL GLSL ES 1.0
Unmasked Renderer: ANGLE (NVIDIA GeForce GTX 480 Direct3D11 vs_5_0 ps_5_0)
Unmasked Vendor: Google Inc.
Firefox 95 Nighly shows much better result but still incorrect GPU:
WebGL MAX parameters support
Max Vertex Attributes: 16
Max Varying Vectors: 30
Max Vertex Uniform Vectors: 4095
Max Fragment Uniform Vectors: 1024
Max Fragment Texture Image Units: 16
Max Vertex Texture Image Units: 16
Max Combined Texture Image Units: 32
Max 2D Texture Size: 16384
Max Cube Texture Size: 16384
Max Texture Anisotropy: 16
Point Size Range: 1 - 1024
Line Width Range: 1 - 1
Max Viewport Dimensions: 32767 - 32767
Max Renderbuffer Size: 16384
Framebuffer Red Bits: 8
Framebuffer Green Bits: 8
Framebuffer Blue Bits: 8
Framebuffer Alpha Bits: 8
Framebuffer Depth Bits: 24
Framebuffer Stencil Bits: 8
Framebuffer Subpixel Bits: 4
MSAA Samples: 4
MSAA Sample Buffers: 1
Supported Formats for UByte Render Targets : RGBA RGB
Supported Formats for Half Float Render Targets: RGBA
Supported Formats for Full Float Render Targets: RGBA
Max Multiple Render Targets Buffers: 8
High Float Precision in Vertex Shader: 23 (-2127 - 2127)
Medium Float Precision in Vertex Shader: 23 (-2127 - 2127)
Low Float Precision in Vertex Shader: 23 (-2127 - 2127)
High Float Precision in Fragment Shader: 23 (-2127 - 2127)
Medium Float Precision in Fragment Shader: 23 (-2127 - 2127)
Low Float Precision in Fragment Shader: 23 (-2127 - 2127)
High Int Precision in Vertex Shader: 0 (-231 - 230)
Medium Int Precision in Vertex Shader: 0 (-231 - 230)
Low Int Precision in Vertex Shader: 0 (-231 - 230)
High Int Precision in Fragment Shader: 0 (-231 - 230)
Medium Int Precision in Fragment Shader: 0 (-231 - 230)
Low Int Precision in Fragment Shader: 0 (-231 - 230)
Supported Extensions: ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_half_float
EXT_float_blend
EXT_frag_depth
EXT_shader_texture_lod
EXT_sRGB
EXT_texture_compression_bptc
EXT_texture_compression_rgtc
EXT_texture_filter_anisotropic
OES_element_index_uint
OES_fbo_render_mipmap
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
WEBGL_color_buffer_float
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
WebGL Renderer: ANGLE (GeForce GTX 480 Direct3D11 vs_5_0 ps_5_0, D3D11-25.21.14.2531)
WebGL Vendor: Mozilla
WebGL Version: WebGL 1.0
Shading Language Version: WebGL GLSL ES 1.0
Unmasked Renderer: ANGLE (GeForce GTX 480 Direct3D11 vs_5_0 ps_5_0, D3D11-25.21.14.2531)
Unmasked Vendor: Google Inc. (NVIDIA)
Expected results:
Chrome 94 shows correct GPU, and correct number of extensions:
WebGL MAX parameters support
Max Vertex Attributes: 16
Max Varying Vectors: 30
Max Vertex Uniform Vectors: 4095
Max Fragment Uniform Vectors: 1024
Max Fragment Texture Image Units: 16
Max Vertex Texture Image Units: 16
Max Combined Texture Image Units: 32
Max 2D Texture Size: 16384
Max Cube Texture Size: 16384
Max Texture Anisotropy: 16
Point Size Range: 1 - 1024
Line Width Range: 1 - 1
Max Viewport Dimensions: 32767 - 32767
Max Renderbuffer Size: 16384
Framebuffer Red Bits: 8
Framebuffer Green Bits: 8
Framebuffer Blue Bits: 8
Framebuffer Alpha Bits: 8
Framebuffer Depth Bits: 24
Framebuffer Stencil Bits: 8
Framebuffer Subpixel Bits: 4
MSAA Samples: 4
MSAA Sample Buffers: 1
Supported Formats for UByte Render Targets : RGBA RGB
Supported Formats for Half Float Render Targets: RGBA RGB
Supported Formats for Full Float Render Targets: RGBA RGB
Max Multiple Render Targets Buffers: 8
High Float Precision in Vertex Shader: 23 (-2127 - 2127)
Medium Float Precision in Vertex Shader: 23 (-2127 - 2127)
Low Float Precision in Vertex Shader: 23 (-2127 - 2127)
High Float Precision in Fragment Shader: 23 (-2127 - 2127)
Medium Float Precision in Fragment Shader: 23 (-2127 - 2127)
Low Float Precision in Fragment Shader: 23 (-2127 - 2127)
High Int Precision in Vertex Shader: 0 (-231 - 230)
Medium Int Precision in Vertex Shader: 0 (-231 - 230)
Low Int Precision in Vertex Shader: 0 (-231 - 230)
High Int Precision in Fragment Shader: 0 (-231 - 230)
Medium Int Precision in Fragment Shader: 0 (-231 - 230)
Low Int Precision in Fragment Shader: 0 (-231 - 230)
Supported Extensions: ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_half_float
EXT_disjoint_timer_query
EXT_float_blend
EXT_frag_depth
EXT_shader_texture_lod
EXT_texture_compression_bptc
EXT_texture_compression_rgtc
EXT_texture_filter_anisotropic
WEBKIT_EXT_texture_filter_anisotropic
EXT_sRGB
KHR_parallel_shader_compile
OES_element_index_uint
OES_fbo_render_mipmap
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
WEBGL_color_buffer_float
WEBGL_compressed_texture_s3tc
WEBKIT_WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBKIT_WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
WEBKIT_WEBGL_lose_context
WEBGL_multi_draw
WebGL Renderer: WebKit WebGL
WebGL Vendor: WebKit
WebGL Version: WebGL 1.0 (OpenGL ES 2.0 Chromium)
Shading Language Version: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)
Unmasked Renderer: ANGLE (NVIDIA, NVIDIA GeForce GT 650M Direct3D11 vs_5_0 ps_5_0, D3D11-25.21.14.2531)
Unmasked Vendor: Google Inc. (NVIDIA)
Comment 1•4 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::JavaScript Engine' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.
Updated•4 years ago
|
Comment 2•4 years ago
|
||
The severity field is not set for this bug.
:jgilbert, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 3•4 years ago
|
||
95 is an ANGLE update ahead of 93, so it's expected that it gives similar capabilities as Chrome.
Firefox doesn't report the exact GPU string anymore, as of 91: bug 1715690
Are there any other specific concerns you have? We are aware of some amount of performance differences between Firefox and Chrome, and we're chipping away at that already.
Glad to know about work in this area.
I would expect Firefox to be as fast as Chrome :)
Thanks.
Comment 5•4 years ago
|
||
The severity field is not set for this bug.
:jgilbert, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 6•3 years ago
|
||
Do you have a specific testcase that's slower in Firefox than Chrome?
https://web.basemark.com/
Chrome has 1.5 higher result than Firefox.
Description
•