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 a 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.
Your Web Browser | ||
User-Agent | CCBot/2.0 (https://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 Version | VERSION | |
Shading Language Version | SHADING_LANGUAGE_VERSION | |
Vendor | VENDOR | |
Renderer | RENDERER | |
Antialiasing | getContextAttributes().antialias | |
ANGLE | Almost Native Graphics Layer Engine | |
Major Performance Caveat | failIfMajorPerformanceCaveat | |
Debug Renderer Info | ||
Unmasked Vendor | UNMASKED_VENDOR_WEBGL | |
Unmasked Renderer | UNMASKED_RENDERER_WEBGL | |
WebGL Fingerprint | ||
WebGL Report Hash | n/a | |
WebGL Image Hash | n/a | |
WebGL Image | n/a | |
Vertex Shader | ||
Max Vertex Attributes | MAX_VERTEX_ATTRIBS | |
Max Vertex Uniform Vectors | MAX_VERTEX_UNIFORM_VECTORS | |
Max Vertex Texture Image Units | MAX_VERTEX_TEXTURE_IMAGE_UNITS | |
Max Varying Vectors | MAX_VARYING_VECTORS | |
Best Float Precision | getShaderPrecisionFormat(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 Range | ALIASED_LINE_WIDTH_RANGE | |
Aliased Point Size Range | ALIASED_POINT_SIZE_RANGE | |
Fragment Shader | ||
Max Fragment Uniform Vectors | MAX_FRAGMENT_UNIFORM_VECTORS | |
Max Texture Image Units | MAX_TEXTURE_IMAGE_UNITS | |
Float/Int Precision: | getShaderPrecisionFormat(FRAGMENT_SHADER, HIGH_FLOAT/HIGH_INT) | |
Best Float Precision | getShaderPrecisionFormat(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 Size | MAX_RENDERBUFFER_SIZE | |
Max Viewport Dimensions | MAX_VIEWPORT_DIMS | |
Textures | ||
Max Texture Size | MAX_TEXTURE_SIZE | |
Max Cube Map Texture Size | MAX_CUBE_MAP_TEXTURE_SIZE | |
Max Combined Texture Image Units | MAX_COMBINED_TEXTURE_IMAGE_UNITS | |
Max Anisotropy | MAX_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:
WebGL Report Hash
A hash of entire WebGL Browser Report table, which contains a listing of all above WebGL capabilities and supported extensions. The hash is taken from the highest supported WebGL context dump.
WebGL Image Hash
A hash of the array of pixels created by drawing WebGL gradient shader. The drawing function borrowed from the Fingerprintjs2 library, uniqueness percentage of the generated image is currently investigated.
The method of obtaining hash involves only WebGL API and doesn't depend on browsers differences in toDataURL PNG export, so this fingerprint may be similar across the browsers within a single device.
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:
- In the address bar, type
about:config
, without any http:// or www - Click the button labeled «I'll be careful, I promise!»
- In Search field, enter
webgl.disabled
string - 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 togglewebgl.enable-webgl2
to true.WebGL 2 is enabled by default since Firefox 51.
- In the address bar, type
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:
--disable-webgl
turn off WebGL--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, the same way you can setup WebGL in Opera and Vivaldi.
WebGL 2.0:
To enable WebGL 2 in Chrome, open
chrome://flags/
, findWebGL 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 on random websites. You can easily enable or disable WebGL globally or for a specific website, by going the menu Preferences → Security → Allow WebGL → Website 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.