WebGL Browser Report

WebGL is a JavaScript API for rendering interactive 3D graphics within any compatible web browser without the use of plug-ins. WebGL apps consist of control code written in JavaScript and special effects code that is executed on a computer's GPU. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

WebGL Browser Report checks WebGL support in your web browser, produce WebGL Device Fingerprinting, and shows the other WebGL and GPU capabilities more or less related web browser identity.

Browser User-AgentCCBot/2.0 (http://commoncrawl.org/faq/)

WebGL Support Detection

This browser supports WebGL× False (JavaScript disabled)
This browser supports WebGL 2× False (JavaScript disabled)
gl.copyBufferSubData
gl.getBufferSubData
gl.blitFramebuffer
gl.framebufferTextureLayer
gl.getInternalformatParameter
gl.invalidateFramebuffer
gl.invalidateSubFramebuffer
gl.readBuffer
gl.renderbufferStorageMultisample
gl.texStorage2D
gl.texStorage3D
gl.texImage3D
gl.texSubImage3D
gl.copyTexSubImage3D
gl.compressedTexImage3D
gl.compressedTexSubImage3D
gl.getFragDataLocation
gl.uniform1ui
gl.uniform2ui
gl.uniform3ui
gl.uniform4ui
gl.uniform1uiv
gl.uniform2uiv
gl.uniform3uiv
gl.uniform4uiv
gl.uniformMatrix2x3fv
gl.uniformMatrix3x2fv
gl.uniformMatrix2x4fv
gl.uniformMatrix4x2fv
gl.uniformMatrix3x4fv
gl.uniformMatrix4x3fv
gl.vertexAttribI4i
gl.vertexAttribI4iv
gl.vertexAttribI4ui
gl.vertexAttribI4uiv
gl.vertexAttribIPointer
gl.vertexAttribDivisor
gl.drawArraysInstanced
gl.drawElementsInstanced
gl.drawRangeElements
gl.drawBuffers
gl.clearBufferiv
gl.clearBufferuiv
gl.clearBufferfv
gl.clearBufferfi
gl.createQuery
gl.deleteQuery
gl.isQuery
gl.beginQuery
gl.endQuery
gl.getQuery
gl.getQueryParameter
gl.createSampler
gl.deleteSampler
gl.isSampler
gl.bindSampler
gl.samplerParameteri
gl.samplerParameterf
gl.getSamplerParameter
gl.fenceSync
gl.isSync
gl.deleteSync
gl.clientWaitSync
gl.waitSync
gl.getSyncParameter
gl.createTransformFeedback
gl.deleteTransformFeedback
gl.isTransformFeedback
gl.bindTransformFeedback
gl.beginTransformFeedback
gl.endTransformFeedback
gl.transformFeedbackVaryings
gl.getTransformFeedbackVarying
gl.pauseTransformFeedback
gl.resumeTransformFeedback
gl.bindBufferBase
gl.bindBufferRange
gl.getIndexedParameter
gl.getUniformIndices
gl.getActiveUniforms
gl.getUniformBlockIndex
gl.getActiveUniformBlockParameter
gl.getActiveUniformBlockName
gl.uniformBlockBinding
gl.createVertexArray
gl.deleteVertexArray
gl.isVertexArray
gl.bindVertexArray

WebGL Context Info

Supported Context Name(s){webgl2, experimental-webgl2, webgl, experimental-webgl, moz-webgl}
GL VersionVERSION
Shading Language VersionSHADING_LANGUAGE_VERSION
VendorVENDOR
RendererRENDERER
AntialiasinggetContextAttributes().antialias
ANGLEAlmost Native Graphics Layer Engine
Major Performance CaveatfailIfMajorPerformanceCaveat

Debug Renderer Info

Unmasked VendorUNMASKED_VENDOR_WEBGL
Unmasked RendererUNMASKED_RENDERER_WEBGL

WebGL Fingerprint

WebGL Report Hashn/a
WebGL Image Hashn/a
WebGL Imagen/a

Vertex Shader

Max Vertex AttributesMAX_VERTEX_ATTRIBS
Max Vertex Uniform VectorsMAX_VERTEX_UNIFORM_VECTORS
Max Vertex Texture Image UnitsMAX_VERTEX_TEXTURE_IMAGE_UNITS
Max Varying VectorsMAX_VARYING_VECTORS
Best Float PrecisiongetShaderPrecisionFormat(VERTEX_SHADER)
Max Vertex Uniform Components:MAX_VERTEX_UNIFORM_COMPONENTS
Max Vertex Uniform Blocks:MAX_VERTEX_UNIFORM_BLOCKS
Max Vertex Output Components:MAX_VERTEX_OUTPUT_COMPONENTS
Max Varying Components:MAX_VARYING_COMPONENTS

Transform Feedback

Max Interleaved Components:MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
Max Separate Attribs:MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
Max Separate Components:MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS

Rasterizer

Aliased Line Width RangeALIASED_LINE_WIDTH_RANGE
Aliased Point Size RangeALIASED_POINT_SIZE_RANGE

Fragment Shader

Max Fragment Uniform VectorsMAX_FRAGMENT_UNIFORM_VECTORS
Max Texture Image UnitsMAX_TEXTURE_IMAGE_UNITS
Float/Int Precision:getShaderPrecisionFormat(FRAGMENT_SHADER, HIGH_FLOAT/HIGH_INT)
Best Float PrecisiongetShaderPrecisionFormat(FRAGMENT_SHADER)
Max Fragment Uniform Components:MAX_FRAGMENT_UNIFORM_COMPONENTS
Max Fragment Uniform Blocks:MAX_FRAGMENT_UNIFORM_BLOCKS
Max Fragment Input Components:MAX_FRAGMENT_INPUT_COMPONENTS
Min Program Texel Offset:MIN_PROGRAM_TEXEL_OFFSET
Max Program Texel Offset:MAX_PROGRAM_TEXEL_OFFSET

Framebuffer

Max Draw Buffers:MAX_DRAW_BUFFERS
Max Color Attachments:MAX_COLOR_ATTACHMENTS
Max Samples:MAX_SAMPLES
Max Color Buffers:MAX_DRAW_BUFFERS_WEBGL
RGBA Bits[RED_BITS, GREEN_BITS, BLUE_BITS, ALPHA_BITS]
Depth / Stencil Bits:[DEPTH_BITS, STENCIL_BITS]
Max Render Buffer SizeMAX_RENDERBUFFER_SIZE
Max Viewport DimensionsMAX_VIEWPORT_DIMS

Textures

Max Texture SizeMAX_TEXTURE_SIZE
Max Cube Map Texture SizeMAX_CUBE_MAP_TEXTURE_SIZE
Max Combined Texture Image UnitsMAX_COMBINED_TEXTURE_IMAGE_UNITS
Max AnisotropyMAX_TEXTURE_MAX_ANISOTROPY_EXT
Max 3D Texture Size:MAX_3D_TEXTURE_SIZE
Max Array Texture Layers:MAX_ARRAY_TEXTURE_LAYERS
Max Texture LOD Bias:MAX_TEXTURE_LOD_BIAS

Uniform Buffers

Max Uniform Buffer Bindings:MAX_UNIFORM_BUFFER_BINDINGS
Max Uniform Block Size:MAX_UNIFORM_BLOCK_SIZE
Uniform Buffer Offset Alignment:UNIFORM_BUFFER_OFFSET_ALIGNMENT
Max Combined Uniform Blocks:MAX_COMBINED_UNIFORM_BLOCKS
Max Combined Vertex Uniform
Components:
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
Max Combined Fragment Uniform
Components:
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS

WebGL Extensions

Supported WebGL Extensions
Supported Privileged Extensions
{OES_texture_float; OES_texture_half_float; WEBGL_lose_context; OES_standard_derivatives; OES_vertex_array_object; WEBGL_debug_renderer_info; WEBGL_debug_shaders; WEBGL_compressed_texture_s3tc; WEBGL_depth_texture; OES_element_index_uint; EXT_texture_filter_anisotropic; EXT_frag_depth; WEBGL_draw_buffers; ANGLE_instanced_arrays; OES_texture_float_linear; OES_texture_half_float_linear; EXT_blend_minmax; EXT_shader_texture_lod; WEBGL_compressed_texture_atc; WEBGL_compressed_texture_pvrtc; EXT_color_buffer_half_float; WEBGL_color_buffer_float; EXT_sRGB; WEBGL_compressed_texture_etc1; EXT_disjoint_timer_query; WEBGL_compressed_texture_etc; WEBGL_compressed_texture_astc; EXT_color_buffer_float; EXT_disjoint_timer_query_webgl2; WEBGL_shared_resources; WEBGL_security_sensitive_resources; OES_fbo_render_mipmap; WEBGL_compressed_texture_s3tc_srgb; WEBGL_get_buffer_sub_data_async; EXT_clip_cull_distance; EXT_float_blend; EXT_texture_storage; OES_EGL_image_external; WEBGL_debug; WEBGL_dynamic_texture; WEBGL_multiview; WEBGL_subarray_uploads; OES_depth24; WEBGL_debug_shader_precision; WEBGL_draw_elements_no_range_check; WEBGL_subscribe_uniform; WEBGL_texture_from_depth_video; WEBGL_compressed_texture_es3; WEBGL_compressed_texture_astc_ldr; EXT_draw_buffers}

What is WebGL Fingerprinting

There are two kinds of WebGL fingerprints you can see:

How to Enable or Disable WebGL in Your Web Browser

WebGL in Firefox

WebGL is supported and enabled by default since Firefox 4 and Firefox for Android 19.

To enable or disable WebGL in Firefox, follow the simple steps:

  1. In the address bar, type about:config, without any http:// or www
  2. Click the button labeled «I'll be careful, I promise!»
  3. In Search field, enter webgl.disabled string
  4. Toggle webgl.disabled to true to disable WebGL, or to false to enable WebGL, please do not confuse.

WebGL 2.0:

To enable WebGL 2 in Firefox, go to about:config and toggle webgl.enable-webgl2 to true.

WebGL 2 is enabled by default since Firefox 51.

WebGL in Chrome

WebGL is supported and enabled by default since Chrome 8.

To disable WebGL, start Google Chrome with one of these command-line options:

  1. --disable-webgl turn off WebGL
  2. --disable-3d-apis turn off all client-visible 3D APIs, in particular WebGL and Pepper 3D

These instructions are valid for all Chromium-based web browsers, in the same way you can setup WebGL in Opera and Vivaldi.

WebGL 2.0:

To enable WebGL 2 in Chrome, open chrome://flags/, find WebGL 2.0 flag, and toggle it to Enabled.

WebGL 2 is enabled by default since Chrome 56.

WebGL in Safari

WebGL is available and enabled by default since Safari 8.

Safari — the only browser that has the ability to Ask before running WebGL scripts in a random websites. You can easily enable or disable WebGL globally or for a specific website, by going the menu PreferencesSecurityAllow WebGLWebsite Settings.

WebGL 2.0:

WebGL 2 is available in Safari 10 Technology Previews, it can be enabled via the "Experimental Features" develop menu.

WebGL in Edge and IE

WebGL enabled by default since IE 11, and there is no way to turn it off.

WebGL 2.0: so far no info about supporting WebGL 2 in Edge or IE.

Further Reading

  1. WebGL Specifications — Khronos Group
  2. WebGL Public Wiki — Khronos Group
  3. WebGL API — Mozilla Developer Network
  4. WebGLReport, that reports a browser's WebGL capabilities — Github

Leave a Comment