example left, electron right

Created Diff never expires
143 removals
218 lines
229 additions
304 lines
Graphics Feature Status
Graphics Feature Status
Canvas: Hardware accelerated
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Disabled
Canvas out-of-process rasterization: Disabled
Direct Rendering Display Compositor: Disabled
Direct Rendering Display Compositor: Disabled
Compositing: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Multiple Raster Threads: Enabled
OpenGL: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated
Rasterization: Hardware accelerated
Raw Draw: Disabled
Raw Draw: Disabled
Video Decode: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Software only. Hardware acceleration disabled
Video Encode: Software only. Hardware acceleration disabled
Vulkan: Disabled
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
WebGL2: Hardware accelerated
WebGPU: Disabled
WebGPU: Disabled
Driver Bug Workarounds
Driver Bug Workarounds
clear_uniforms_before_first_program_use
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
count_all_in_varyings_packing
disable_post_sub_buffers_for_onscreen_surfaces
enable_webgl_timer_query_extensions
enable_webgl_timer_query_extensions
exit_on_context_lost
exit_on_context_lost
rely_on_implicit_sync_for_swap_buffers
rely_on_implicit_sync_for_swap_buffers
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
disabled_extension_GL_KHR_blend_equation_advanced_coherent
disabled_extension_GL_MESA_framebuffer_flip_y
Problems Detected
Problems Detected
WebGPU has been disabled via blocklist or the command line.
WebGPU has been disabled via blocklist or the command line.
Disabled Features: webgpu
Disabled Features: webgpu
Accelerated video encode has been disabled, either via blocklist, about:flags or the command line.
Accelerated video encode has been disabled, either via blocklist, about:flags or the command line.
Disabled Features: video_encode
Disabled Features: video_encode
Clear uniforms before first program use on all platforms: 124764, 349137
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Applied Workarounds: count_all_in_varyings_packing
Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Expose WebGL's disjoint_timer_query extensions on platforms with site isolation: 808744, 870491
Expose WebGL's disjoint_timer_query extensions on platforms with site isolation: 808744, 870491
Applied Workarounds: enable_webgl_timer_query_extensions
Applied Workarounds: enable_webgl_timer_query_extensions
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Applied Workarounds: exit_on_context_lost
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Broadcom GPUs: 938286
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Broadcom GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y)
ANGLE Features
allowCompressedFormats (Frontend workarounds): Enabled: true
Allow compressed formats
cacheCompiledShader (Frontend features) anglebug:7036: Disabled
Enable to cache compiled shaders
disableAnisotropicFiltering (Frontend workarounds): Disabled
Disable support for anisotropic filtering
disableDrawBuffersIndexed (Frontend features) anglebug:7724: Disabled
Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed
disableProgramBinary (Frontend features) anglebug:5007: Disabled: IsPowerVrRogue(functions)
Disable support for GL_OES_get_program_binary
disableProgramCaching (Frontend features) anglebug:1423136: Disabled
Disables saving programs to the cache
disableProgramCachingForTransformFeedback (Frontend workarounds): Disabled: !isMesa && isQualcomm
On some GPUs, program binaries don't contain transform feedback varyings
dumpShaderSource (Frontend features) anglebug:7760: Disabled
Write shader source to temp directory
emulatePixelLocalStorage (Frontend features) anglebug:7279: Enabled: true
Emulate ANGLE_shader_pixel_local_storage using shader images
enableCaptureLimits (Frontend features) anglebug:5750: Disabled
Set the context limits like frame capturing was enabled
enableProgramBinaryForCapture (Frontend features) anglebug:5658: Disabled
Even if FrameCapture is enabled, enable GL_OES_get_program_binary
enableShaderSubstitution (Frontend workarounds) anglebug:7761: Disabled
Check the filesystem for shaders to use instead of those provided through glShaderSource
forceDepthAttachmentInitOnClear (Frontend workarounds) anglebug:7246: Disabled
Force depth attachment initialization on clear ops
forceGlErrorChecking (Frontend features) https://issuetracker.google.com/220069903: Disabled
Force GL error checking (i.e. prevent applications from disabling error checking
forceInitShaderVariables (Frontend features): Disabled
Force-enable shader variable initialization
forceRobustResourceInit (Frontend features) anglebug:6041: Disabled
Force-enable robust resource init
loseContextOnOutOfMemory (Frontend workarounds): Enabled: true
Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs
singleThreadedTextureDecompression (Frontend workarounds): Disabled
Disables multi-threaded decompression of compressed texture formats
RGBA4IsNotSupportedForColorRendering (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isIntel
GL_RGBA4 is not color renderable
RGBDXT1TexturesSampleZeroAlpha (OpenGL workarounds) anglebug:3729: Disabled: IsApple()
Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.
addAndTrueToLoopCondition (OpenGL workarounds): Disabled: IsApple() && isIntel
Calculation of loop conditions in for and while loop has bug
adjustSrcDstRegionForBlitFramebuffer (OpenGL workarounds) 830046: Enabled: IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia) || (IsApple() && functions->standard == STANDARD_GL_ES)
Many platforms have issues with blitFramebuffer when the parameters are large.
allowAstcFormats (OpenGL workarounds): Disabled: !isMesa || isIntel && (Is9thGenIntel(device) || IsGeminiLake(device) || IsCoffeeLake(device) || Is11thGenIntel(device) || Is12thGenIntel(device))
Enable ASTC on desktop OpenGL
allowClearForRobustResourceInit (OpenGL workarounds) 848952: Disabled: IsApple()
Using glClear for robust resource initialization is buggy on some drivers and leads to texture corruption. Default to data uploads except on MacOS where it is very slow.
allowETCFormats (OpenGL workarounds): Disabled: isIntel && !IsSandyBridge(device) && !IsIvyBridge(device) && !IsHaswell(device)
Enable ETC2/EAC on desktop OpenGL
alwaysCallUseProgramAfterLink (OpenGL workarounds) 110263: Enabled: true
Always call useProgram after a successful link to avoid a driver bug
alwaysUnbindFramebufferTexture2D (OpenGL workarounds) anglebug:5536: Disabled: isNvidia && (IsWindows() || IsLinux())
Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug.
avoid1BitAlphaTextureFormats (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isAMD
Issue with 1-bit alpha framebuffer formats
bindFramebufferForTimerQueries (OpenGL workarounds) 1356053: Disabled: IsMali(functions)
Some drivers require a non-zero framebuffer when beginQuery for TimeElapsed orTimestampis called.
bindTransformFeedbackBufferBeforeBindBufferRange (OpenGL workarounds) anglebug:5140: Disabled: IsApple()
Bind transform feedback buffers to the generic binding point before calling glBindBufferBase or glBindBufferRange.
clampArrayAccess (OpenGL workarounds) anglebug:2978: Enabled: IsAndroid() || isAMD || !functions->hasExtension("GL_KHR_robust_buffer_access_behavior")
Clamp uniform array access to avoid reading invalid memory.
clampFragDepth (OpenGL workarounds): Disabled: isNvidia
gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer
clampMscRate (OpenGL workarounds) 1042393: Disabled: IsLinux() && IsWayland()
Some drivers return bogus values for GetMscRate, so we clamp it to 30Hz
clampPointSize (OpenGL workarounds): Disabled: IsAndroid() || isNvidia
The point size range reported from the API is inconsistent with the actual behavior
clearToZeroOrOneBroken (OpenGL workarounds) 710443: Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6)
Clears when the clear color is all zeros or ones do not work.
clipSrcRegionForBlitFramebuffer (OpenGL workarounds) 830046: Disabled: IsApple() || (IsLinux() && isAMD)
Issues with blitFramebuffer when the parameters don't match the framebuffer size.
decodeEncodeSRGBForGenerateMipmap (OpenGL workarounds) anglebug:4646: Disabled: IsApple()
Decode and encode before generateMipmap for srgb format textures.
disableBlendFuncExtended (OpenGL workarounds) anglebug:1085: Disabled: (!isMesa && isQualcomm) || (IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 14, 0))
ARB_blend_func_extended does not pass the tests
disableDrawBuffersIndexed (OpenGL workarounds): Disabled: IsWindows() && isAMD
Disable OES_draw_buffers_indexed extension.
disableGPUSwitchingSupport (OpenGL workarounds) 1091824: Disabled: isDualGPUMacWithNVIDIA
Disable GPU switching support (use only the low-power GPU) on older MacBook Pros.
disableMultisampledRenderToTexture (OpenGL workarounds) anglebug:2894: Disabled: isAdreno4xxOnAndroidLessThan51 || isAdreno4xxOnAndroid70 || isAdreno5xxOnAndroidLessThan70 || isAdreno5xxOnAndroid71 || isLinuxVivante || IsAndroid()
Many drivers have bugs when using GL_EXT_multisampled_render_to_texture
disableNativeParallelCompile (OpenGL workarounds) 1094869: Disabled: isTSANBuild && IsLinux() && isNvidia
Do not use native KHR_parallel_shader_compile even when available.
disableSemaphoreFd (OpenGL workarounds) 1046462: Disabled: IsLinux() && isAMD && isMesa && mesaVersion < (std::array<int, 3>{19, 3, 5})
Disable GL_EXT_semaphore_fd extension
disableSyncControlSupport (OpenGL workarounds) 1137851: Disabled: IsLinux() && isIntel && isMesa && mesaVersion[0] == 20
Speculative fix for issues on Linux/Wayland where exposing GLX_OML_sync_control renders Chrome unusable
disableTextureClampToBorder (OpenGL workarounds) anglebug:7405: Disabled: isImagination
Imagination devices generate INVALID_ENUM when setting the texture border color.
disableTimestampQueries (OpenGL workarounds) 811661: Disabled: (IsLinux() && isVMWare) || (IsAndroid() && isNvidia) || (IsAndroid() && GetAndroidSdkLevel() < 27 && IsAdreno5xxOrOlder(functions)) || (!isMesa && IsMaliT8xxOrOlder(functions)) || (!isMesa && IsMaliG31OrOlder(functions))
Disable GL_EXT_disjoint_timer_query extension
disableWorkerContexts (OpenGL workarounds) 849576: Disabled: (IsWindows() && (isIntel || isAMD)) || (IsLinux() && isNvidia) || IsIOS() || IsAndroid() || IsAndroidEmulator(functions)
Some tests have been seen to fail using worker contexts
doWhileGLSLCausesGPUHang (OpenGL workarounds) 644669: Disabled: IsApple() && functions->standard == STANDARD_GL_DESKTOP && GetMacOSVersion() < OSVersion(10, 11, 0)
Some GLSL constructs involving do-while loops cause GPU hangs
doesSRGBClearsOnLinearFramebufferAttachments (OpenGL workarounds): Disabled: isIntel || isAMD
Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled
dontInitializeUninitializedLocals (OpenGL workarounds) anglebug:2046: Disabled: !isMesa && isQualcomm
Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests
dontRelinkProgramsInParallel (OpenGL workarounds) anglebug:3045: Disabled: IsAndroid() || (IsWindows() && isIntel)
Relinking a program in parallel is buggy
dontUseLoopsToInitializeVariables (OpenGL workarounds) 809422: Disabled: (!isMesa && isQualcomm) || (isIntel && IsApple())
For loops used to initialize variables hit native GLSL compiler bugs
emulateAbsIntFunction (OpenGL workarounds) 642227: Disabled: IsApple() && isIntel
abs(i) where i is an integer returns unexpected result
emulateAtan2Float (OpenGL workarounds) 672380: Disabled: isNvidia
atan(y, x) may return a wrong answer
emulateClipDistanceState (OpenGL workarounds): Disabled: isQualcomm
Some drivers ignore GL_CLIP_DISTANCEi_EXT state.
emulateCopyTexImage2D (OpenGL workarounds): Disabled: isApple
Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D.
emulateCopyTexImage2DFromRenderbuffers (OpenGL workarounds) anglebug:4674: Disabled: IsApple() && functions->standard == STANDARD_GL_ES && !(isAMD && IsWindows())
CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers.
emulateImmutableCompressedTexture3D (OpenGL workarounds) 1060012: Disabled: isQualcomm
Use non-immutable texture allocation to work around a driver bug.
emulateIsnanFloat (OpenGL workarounds) 650547: Disabled: isIntel && IsApple() && IsSkylake(device) && GetMacOSVersion() < OSVersion(10, 13, 2)
Using isnan() on highp float will get wrong answer
emulateMaxVertexAttribStride (OpenGL workarounds) anglebug:1936: Disabled: IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD
Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried
emulatePackSkipRowsAndPackSkipPixels (OpenGL workarounds) anglebug:4849: Disabled: IsApple()
GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver.
emulatePrimitiveRestartFixedIndex (OpenGL workarounds) anglebug:3997: Disabled: functions->standard == STANDARD_GL_DESKTOP && functions->isAtLeastGL(gl::Version(3, 1)) && !functions->isAtLeastGL(gl::Version(4, 3))
When GL_PRIMITIVE_RESTART_FIXED_INDEX is not available, emulate it with GL_PRIMITIVE_RESTART and glPrimitiveRestartIndex.
emulateRGB10 (OpenGL workarounds) 1300575: Enabled: functions->standard == STANDARD_GL_DESKTOP
Emulate RGB10 support using RGB10_A2.
ensureNonEmptyBufferIsBoundForDraw (OpenGL features) 1456243: Disabled: IsApple() || IsAndroid()
Apple OpenGL drivers crash when drawing with a zero-sized buffer bound using a non-zero divisor.
finishDoesNotCauseQueriesToBeAvailable (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isNvidia
glFinish doesn't cause all queries to report available result
flushBeforeDeleteTextureIfCopiedTo (OpenGL workarounds) anglebug:4267: Disabled: IsApple() && isIntel
Some drivers track CopyTex{Sub}Image texture dependencies incorrectly. Flush before glDeleteTextures in this case
flushOnFramebufferChange (OpenGL workarounds) 1181068: Disabled: IsApple() && Has9thGenIntelGPU(systemInfo)
Switching framebuffers without a flush can lead to crashes on Intel 9th Generation GPU Macs.
initFragmentOutputVariables (OpenGL workarounds) 1171371: Disabled: IsAdreno42xOr3xx(functions)
No init gl_FragColor causes context lost
initializeCurrentVertexAttributes (OpenGL workarounds): Disabled: isNvidia
During initialization, assign the current vertex attributes to the spec-mandated defaults
keepBufferShadowCopy (OpenGL workarounds): Disabled: !CanMapBufferForRead(functions)
Maintain a shadow copy of buffer data when the GL API does not permit reading data back.
limitMax3dArrayTextureSizeTo1024 (OpenGL workarounds) 927470: Disabled: limitMaxTextureSize
Limit max 3d texture size and max array texture layers to 1024 to avoid system hang
limitMaxMSAASamplesTo4 (OpenGL workarounds) 797243: Disabled: IsAndroid() || (IsApple() && (isIntel || isAMD || isNvidia))
Various rendering bugs have been observed when using higher MSAA counts
limitWebglMaxTextureSizeTo4096 (OpenGL workarounds) 927470: Disabled: IsAndroid() || limitMaxTextureSize
Limit webgl max texture size to 4096 to avoid frequent out-of-memory errors
packLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) anglebug:1512: Disabled: IsApple() || isNvidia
When uploading textures from an pack buffer, some drivers count an extra row padding
packOverlappingRowsSeparatelyPackBuffer (OpenGL workarounds): Disabled: isNvidia
In the case of packing to a pixel pack buffer, pack overlapping rows row by row
passHighpToPackUnormSnormBuiltins (OpenGL workarounds) anglebug:7527: Disabled: isQualcomm
packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4.
preAddTexelFetchOffsets (OpenGL workarounds) 642605: Disabled: IsApple() && isIntel
Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid even if the sum of position and offset is in range, so we need to add workarounds by rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, position + offset, lod).
promotePackedFormatsTo8BitPerChannel (OpenGL workarounds) anglebug:5469: Disabled: IsApple() && hasAMD
Packed color formats are buggy on Macs with AMD GPUs
queryCounterBitsGeneratesErrors (OpenGL workarounds) anglebug:3027: Disabled: IsNexus5X(vendor, device)
Drivers generate errors when querying the number of bits in timer queries
readPixelsUsingImplementationColorReadFormatForNorm16 (OpenGL workarounds) anglebug:4214: Disabled: !isIntel && functions->standard == STANDARD_GL_ES && functions->isAtLeastGLES(gl::Version(3, 1)) && functions->hasGLESExtension("GL_EXT_texture_norm16")
Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from EXT_texture_norm16 correctly
reapplyUBOBindingsAfterUsingBinaryProgram (OpenGL workarounds) anglebug:1637: Disabled: isAMD || IsAndroid()
Some drivers forget about UBO bindings when using program binaries
regenerateStructNames (OpenGL workarounds) 403957: Disabled: IsApple()
All Mac drivers do not handle struct scopes correctly. This workaround overwrites a structname with a unique prefix.
removeDynamicIndexingOfSwizzledVector (OpenGL workarounds) 709351: Disabled: IsApple() || IsAndroid() || IsWindows()
Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.
removeInvariantAndCentroidForESSL3 (OpenGL workarounds): Enabled: functions->isAtMostGL(gl::Version(4, 1)) || (functions->standard == STANDARD_GL_DESKTOP && isAMD)
Fix spec difference between GLSL 4.1 or lower and ESSL3
resetTexImage2DBaseLevel (OpenGL workarounds) 705865: Disabled: IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4)
Reset texture base level before calling glTexImage2D to work around pixel comparison failure.
rewriteFloatUnaryMinusOperator (OpenGL workarounds) 308366: Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 0)
Using '-<float>' will get wrong answer
rewriteRepeatedAssignToSwizzled (OpenGL workarounds): Disabled: isNvidia
Repeated assignment to swizzled values inside a GLSL user-defined function have incorrect results
rewriteRowMajorMatrices (OpenGL workarounds) anglebug:2273: Disabled: false
Rewrite row major matrices in shaders as column major as a driver bug workaround
sanitizeAMDGPURendererString (OpenGL workarounds) 1181193: Disabled: IsLinux() && hasAMD
Strip precise kernel and DRM version information from amdgpu renderer strings.
scalarizeVecAndMatConstructorArgs (OpenGL workarounds) 1420130: Disabled: IsMali(functions)
Rewrite vec/mat constructors to work around driver bugs
setPrimitiveRestartFixedIndexForDrawArrays (OpenGL workarounds) anglebug:3997: Disabled: features->emulatePrimitiveRestartFixedIndex.enabled && IsApple() && isIntel
Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart index is within the number of primitives being drawn.
setZeroLevelBeforeGenerateMipmap (OpenGL workarounds): Disabled: IsApple()
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers.
shiftInstancedArrayDataWithOffset (OpenGL workarounds) 1144207: Disabled: IsApple() && IsIntel(vendor) && !IsHaswell(device)
glDrawArraysInstanced is buggy on certain new Mac Intel GPUs
supportsFragmentShaderInterlockARB (OpenGL features) anglebug:7279: Disabled: functions->isAtLeastGL(gl::Version(4, 5)) && functions->hasGLExtension("GL_ARB_fragment_shader_interlock")
Backend GL context supports ARB_fragment_shader_interlock extension
supportsFragmentShaderInterlockNV (OpenGL features) anglebug:7279: Disabled: functions->isAtLeastGL(gl::Version(4, 3)) && functions->hasGLExtension("GL_NV_fragment_shader_interlock")
Backend GL context supports NV_fragment_shader_interlock extension
supportsFragmentShaderOrderingINTEL (OpenGL features) anglebug:7279: Disabled: functions->isAtLeastGL(gl::Version(4, 4)) && functions->hasGLExtension("GL_INTEL_fragment_shader_ordering")
Backend GL context supports GL_INTEL_fragment_shader_ordering extension
supportsShaderFramebufferFetchEXT (OpenGL features) anglebug:7279: Disabled: functions->hasGLESExtension("GL_EXT_shader_framebuffer_fetch")
Backend GL context supports EXT_shader_framebuffer_fetch extension
supportsShaderFramebufferFetchNonCoherentEXT (OpenGL features) anglebug:7279: Disabled: functions->hasGLESExtension("GL_EXT_shader_framebuffer_fetch_non_coherent")
Backend GL context supports EXT_shader_framebuffer_fetch_non_coherent extension
supportsShaderPixelLocalStorageEXT (OpenGL features) anglebug:7279: Disabled: functions->hasGLESExtension("GL_EXT_shader_pixel_local_storage")
Backend GL context supports EXT_shader_pixel_local_storage extension
syncVertexArraysToDefault (OpenGL workarounds) anglebug:5577: Disabled: !nativegl::SupportsVertexArrayObjects(functions)
Only use the default VAO because of missing support or driver bugs
unbindFBOBeforeSwitchingContext (OpenGL workarounds) 1181193: Disabled: IsPowerVR(vendor)
Imagination GL drivers are buggy with context switching.
unfoldShortCircuits (OpenGL workarounds) anglebug:482: Disabled: IsApple()
Mac incorrectly executes both sides of && and || expressions when they should short-circuit.
unpackLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) anglebug:1512: Disabled: IsApple() || isNvidia
When uploading textures from an unpack buffer, some drivers count an extra row padding
unpackOverlappingRowsSeparatelyUnpackBuffer (OpenGL workarounds): Disabled: isNvidia
In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row
unsizedSRGBReadPixelsDoesntTransform (OpenGL workarounds) 550292: Disabled: !isMesa && isQualcomm
Drivers returning raw sRGB values instead of linearized values when calling glReadPixels on unsized sRGB texture formats
uploadTextureDataInChunks (OpenGL workarounds) 1181068: Disabled: IsApple()
Upload texture data in <120kb chunks to work around Mac driver hangs and crashes.
useUnusedBlocksWithStandardOrSharedLayout (OpenGL workarounds): Disabled: (IsApple() && functions->standard == STANDARD_GL_DESKTOP) || (IsLinux() && isAMD)
Unused std140 or shared uniform blocks will be treated as inactive
vertexIDDoesNotIncludeBaseVertex (OpenGL workarounds): Disabled: IsApple() && isAMD
gl_VertexID in GLSL vertex shader doesn't include base vertex value
DAWN Info
DAWN Info


<CPU> Vulkan backend - SwiftShader Device (LLVM 10.0.0)
<CPU> Vulkan backend - SwiftShader Device (LLVM 10.0.0)
[WebGPU Status]
[WebGPU Status]
Blocklisted
Blocklisted
[Default Toggle Names]
[Default Toggle Names]
lazy_clear_resource_on_first_use: https://crbug.com/dawn/145: Clears resource to zero on first usage. This initializes the resource so that no dirty bits from recycled memory is present in the new resource.
lazy_clear_resource_on_first_use: https://crbug.com/dawn/145: Clears resource to zero on first usage. This initializes the resource so that no dirty bits from recycled memory is present in the new resource.
use_temporary_buffer_in_texture_to_texture_copy: https://crbug.com/dawn/42: Split texture-to-texture copy into two copies: copy from source texture into a temporary buffer, and copy from the temporary buffer into the destination texture when copying between compressed textures that don't have block-aligned sizes. This workaround is enabled by default on all Vulkan drivers to solve an issue in the Vulkan SPEC about the texture-to-texture copies with compressed formats. See #1005 (https://github.com/KhronosGroup/Vulkan-Docs/issues/1005) for more details.
use_temporary_buffer_in_texture_to_texture_copy: https://crbug.com/dawn/42: Split texture-to-texture copy into two copies: copy from source texture into a temporary buffer, and copy from the temporary buffer into the destination texture when copying between compressed textures that don't have block-aligned sizes. This workaround is enabled by default on all Vulkan drivers to solve an issue in the Vulkan SPEC about the texture-to-texture copies with compressed formats. See #1005 (https://github.com/KhronosGroup/Vulkan-Docs/issues/1005) for more details.
vulkan_use_d32s8: https://crbug.com/dawn/286: Vulkan mandates support of either D32_FLOAT_S8 or D24_UNORM_S8. When available the backend will use D32S8 (toggle to on) but setting the toggle to off will make it use the D24S8 format when possible.
vulkan_use_d32s8: https://crbug.com/dawn/286: Vulkan mandates support of either D32_FLOAT_S8 or D24_UNORM_S8. When available the backend will use D32S8 (toggle to on) but setting the toggle to off will make it use the D24S8 format when possible.
vulkan_use_s8: https://crbug.com/dawn/666: Vulkan has a pure stencil8 format but it is not universally available. When this toggle is on, the backend will use S8 for the stencil8 format, otherwise it will fallback to D32S8 or D24S8.
vulkan_use_s8: https://crbug.com/dawn/666: Vulkan has a pure stencil8 format but it is not universally available. When this toggle is on, the backend will use S8 for the stencil8 format, otherwise it will fallback to D32S8 or D24S8.
disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
use_placeholder_fragment_in_vertex_only_pipeline: https://crbug.com/dawn/136: Use a placeholder empty fragment shader in vertex only render pipeline. This toggle must be enabled for OpenGL ES backend, the Vulkan Backend, and serves as a workaround by default enabled on some Metal devices with Intel GPU to ensure the depth result is correct.
use_placeholder_fragment_in_vertex_only_pipeline: https://crbug.com/dawn/136: Use a placeholder empty fragment shader in vertex only render pipeline. This toggle must be enabled for OpenGL ES backend, the Vulkan Backend, and serves as a workaround by default enabled on some Metal devices with Intel GPU to ensure the depth result is correct.
use_vulkan_zero_initialize_workgroup_memory_extension: https://crbug.com/dawn/1302: Initialize workgroup memory with OpConstantNull on Vulkan when the Vulkan extension VK_KHR_zero_initialize_workgroup_memory is supported.
use_vulkan_zero_initialize_workgroup_memory_extension: https://crbug.com/dawn/1302: Initialize workgroup memory with OpConstantNull on Vulkan when the Vulkan extension VK_KHR_zero_initialize_workgroup_memory is supported.
[WebGPU Forced Toggles - enabled]
[WebGPU Forced Toggles - enabled]
disallow_spirv: https://crbug.com/1214923: Disallow usage of SPIR-V completely so that only WGSL is used for shader modules. This is useful to prevent a Chromium renderer process from successfully sending SPIR-V code to be compiled in the GPU process.
disallow_spirv: https://crbug.com/1214923: Disallow usage of SPIR-V completely so that only WGSL is used for shader modules. This is useful to prevent a Chromium renderer process from successfully sending SPIR-V code to be compiled in the GPU process.
[Supported Features]
[Supported Features]
texture-compression-bc
texture-compression-bc
texture-compression-etc2
texture-compression-etc2
texture-compression-astc
texture-compression-astc
timestamp-query
timestamp-query
timestamp-query-inside-passes
timestamp-query-inside-passes
depth-clip-control
depth-clip-control
depth32float-stencil8
depth32float-stencil8
indirect-first-instance
indirect-first-instance
rg11b10ufloat-renderable
rg11b10ufloat-renderable
bgra8unorm-storage
bgra8unorm-storage
dawn-internal-usages
dawn-internal-usages
dawn-native
dawn-native
implicit-device-sync
surface-capabilities
Version Information
Version Information
Data exported
Data exported
2023-10-04T21:30:56.747Z
2023-10-04T21:32:42.642Z
Chrome version
Chrome version
Chrome/113.0.5672.95
Chrome/114.0.5735.289
Operating system
Operating system
Linux 6.1.21-v8+
Linux 6.1.21-v8+
Software rendering list URL
Software rendering list URL
https://chromium.googlesource.com/chromium/src/+/917deeefba48411c7b40ba19aef7b229bf48acd7/gpu/config/software_rendering_list.json
https://chromium.googlesource.com/chromium/src/+/11ba440373dd65431c703e4dad70423a8a79fdbc/gpu/config/software_rendering_list.json
Driver bug list URL
Driver bug list URL
https://chromium.googlesource.com/chromium/src/+/917deeefba48411c7b40ba19aef7b229bf48acd7/gpu/config/gpu_driver_bug_list.json
https://chromium.googlesource.com/chromium/src/+/11ba440373dd65431c703e4dad70423a8a79fdbc/gpu/
ANGLE commit id
c2efe6fcdbc5
2D graphics backend
Skia/113 1195e70d671947af02a6a5b0ddc65806b9645252
Command Line
/usr/lib/chromium-browser/chromium-browser --force-renderer-accessibility --enable-remote-extensions --enable-pinch --flag-switches-begin --flag-switches-end --ozone-platform=x11 --desktop-startup-id=lxpanel-880-raspberrypi-/usr/bin/x-www-browser-1_TIME1291901 --origin-trial-disabled-features=WebGPU
Driver Information
Initialization time
718
In-process GPU
false
Passthrough Command Decoder
false
Sandboxed
true
GPU0
VENDOR= 0x0000 [Broadcom], DEVICE=0x0000 [V3D 4.2], DRIVER_VENDOR=Mesa, DRIVER_VERSION=20.3.5 *ACTIVE*
Optimus
false
AMD switchable
false
GPU CUDA compute capability major version
0
Pixel shader version
3.10
Vertex shader version
3.10
Max. MSAA samples
4
Machine model name
Machine model version
GL implementation parts
(gl=egl-gles2,angle=none)
Display type
DEFAULT
GL_VENDOR
Broadcom
GL_RENDERER
V3D 4.2
GL_VERSION
OpenGL ES 3.1 Mesa 20.3.5
GL_EXTENSIONS
GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_draw_elements_base_vertex GL_EXT_primitive_bounding_box GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_view GL_KHR_context_flush_control GL_NV_image_formats GL_OES_draw_elements_base_vertex GL_OES_primitive_bounding_box GL_OES_shader_io_blocks GL_OES_texture_border_clamp GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view GL_EXT_buffer_storage GL_EXT_float_blend GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_shader_image_atomic GL_EXT_texture_compression_s3tc_srgb GL_MESA_shader_integer_functions GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage GL_MESA_framebuffer_flip_y GL_EXT_texture_query_lod
Disabled Extensions
GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Disabled WebGL Extensions
Window system binding vendor
Mesa Project
Window system binding version
1.4
Window system binding extensions
EGL_ANDROID_blob_cache EGL_CHROMIUM_sync_control EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_swap_buffers_with_damage EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_NOK_texture_from_pixmap
XDG_CURRENT_DESKTOP
LXDE
XDG_SESSION_TYPE
x11
GDMSESSION
lightdm-xsession
Ozone platform
x11
Direct rendering version
unknown
Reset notification strategy
0x0000
GPU process crash count
0
gfx::BufferFormats supported for allocation and texturing
R_8: not supported, R_16: not supported, RG_88: not supported, RG_1616: not supported, BGR_565: not supported, RGBA_4444: not supported, RGBX_8888: not supported, RGBA_8888: not supported, BGRX_8888: not supported, BGRA_1010102: not supported, RGBA_1010102: not supported, BGRA_8888: not supported, RGBA_F16: not supported, YVU_420: not supported, YUV_420_BIPLANAR: not supported, YUVA_420_TRIPLANAR: not supported, P010: not supported
Compositor Information
Tile Update Mode
One-copy
Partial Raster
Enabled
GpuMemoryBuffers Status
R_8
Software only
R_16
Software only
RG_88
Software only
RG_1616
Software only
BGR_565
Software only
RGBA_4444
Software only
RGBX_8888
Software only
RGBA_8888
Software only
BGRX_8888
Software only
BGRA_1010102
Software only
RGBA_1010102
Software only
BGRA_8888
Software only
RGBA_F16
Software only
YVU_420
Software only
YUV_420_BIPLANAR
Software only
YUVA_420_TRIPLANAR
Software only
P010
Software only
Display(s) Information
Info
Display[20820289745558341] bounds=[0,0 1920x1080], workarea=[0,36 1920x1044], scale=1, rotation=0, panel_rotation=0 external.
Color space (all)
{primaries:BT709, transfer:SRGB, matrix:RGB, range:FULL}
Buffer format (all)
BGRA_8888
Color volume
{name:'srgb', r:[0.6400, 0.3300], g:[0.3000, 0.6000], b:[0.1500, 0.3300], w:[0.3127, 0.3290]}
SDR white level in nits
203
HDR relative maximum luminance
1
Bits per color component
8
Bits per pixel
24
Refresh Rate in Hz
60
Video Acceleration Information
Decoding
Decode h264 baseline
32x32 to 1920x1920 pixels
Decode h264 main
32x32 to 1920x1920 pixels
Decode h264 high
32x32 to 1920x1920 pixels
Encoding
Vulkan Information
Device Performance Information
Log Messages