Created
January 18, 2023 05:55
-
-
Save mrdoob/9d7d348131fa875e729451282822033f to your computer and use it in GitHub Desktop.
chrome://gpu MacBook Air M1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Graphics Feature Status | |
Canvas: Hardware accelerated | |
Canvas out-of-process rasterization: Disabled | |
Direct Rendering Display Compositor: Disabled | |
Compositing: Hardware accelerated | |
Multiple Raster Threads: Enabled | |
OpenGL: Enabled | |
Rasterization: Hardware accelerated | |
Raw Draw: Disabled | |
Video Decode: Hardware accelerated | |
Video Encode: Hardware accelerated | |
Vulkan: Disabled | |
WebGL: Hardware accelerated | |
WebGL2: Hardware accelerated | |
WebGPU: Hardware accelerated | |
Driver Bug Workarounds | |
adjust_src_dst_region_for_blitframebuffer | |
clamp_texture_base_level_and_max_level | |
decode_encode_srgb_for_generatemipmap | |
disable_2d_canvas_auto_flush | |
enable_webgl_timer_query_extensions | |
get_frag_data_info_bug | |
pack_parameters_workaround_with_pack_buffer | |
regenerate_struct_names | |
remove_dynamic_indexing_of_swizzled_vector | |
remove_invariant_and_centroid_for_essl3 | |
set_zero_level_before_generating_mipmap | |
unfold_short_circuit_as_ternary_operation | |
unpack_alignment_workaround_with_unpack_buffer | |
use_intermediary_for_copy_texture_image | |
use_unused_standard_shared_blocks | |
disabled_extension_GL_KHR_blend_equation_advanced | |
disabled_extension_GL_KHR_blend_equation_advanced_coherent | |
disabled_extension_GL_MESA_framebuffer_flip_y | |
Problems Detected | |
Unfold short circuit on Mac OS X: 307751 | |
Applied Workarounds: unfold_short_circuit_as_ternary_operation | |
Mac drivers handle struct scopes incorrectly: 403957 | |
Applied Workarounds: regenerate_struct_names | |
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499 | |
Applied Workarounds: set_zero_level_before_generating_mipmap | |
Pack parameters work incorrectly with pack buffer bound: 563714 | |
Applied Workarounds: pack_parameters_workaround_with_pack_buffer | |
Alignment works incorrectly with unpack buffer bound: 563714 | |
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer | |
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777 | |
Applied Workarounds: use_intermediary_for_copy_texture_image | |
glGetFragData{Location|Index} works incorrectly on Max: 638340 | |
Applied Workarounds: get_frag_data_info_bug | |
Decode and encode before generateMipmap for srgb format textures on macosx: 634519 | |
Applied Workarounds: decode_encode_srgb_for_generatemipmap | |
Insert statements to reference all members in unused std140/shared blocks on Mac: 618464 | |
Applied Workarounds: use_unused_standard_shared_blocks | |
adjust src/dst region if blitting pixels outside framebuffer on Mac: 644740 | |
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer | |
Mac driver GL 4.1 requires invariant and centroid to match between shaders: 639760, 641129 | |
Applied Workarounds: remove_invariant_and_centroid_for_essl3 | |
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) | |
Expose WebGL's disjoint_timer_query extensions on platforms with site isolation: 808744, 870491 | |
Applied Workarounds: enable_webgl_timer_query_extensions | |
glFlush error on Mac: 841755 | |
Applied Workarounds: disable_2d_canvas_auto_flush | |
Clamp texture's BASE_LEVEL/MAX_LEVEL for GenerateMipmap: 913301 | |
Applied Workarounds: clamp_texture_base_level_and_max_level | |
Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010 | |
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y) | |
Remove dynamic indexing for swizzled vectors on Mac: 709351 | |
Applied Workarounds: remove_dynamic_indexing_of_swizzled_vector | |
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 | |
disableProgramCachingForTransformFeedback (Frontend workarounds): Disabled: IsAndroid() && isQualcomm | |
On some GPUs, program binaries don't contain transform feedback varyings | |
emulatePixelLocalStorage (Frontend features) anglebug:7279: Disabled: false | |
Emulate ANGLE_shader_pixel_local_storage using shader images | |
enableCaptureLimits (Frontend features) anglebug:5750: Disabled | |
Set the context limits like frame capturing was enabled | |
enableCompressingPipelineCacheInThreadPool (Frontend workarounds) anglebug:4722: Disabled: false | |
Enable compressing pipeline cache in thread pool. | |
enableProgramBinaryForCapture (Frontend features) anglebug:5658: Disabled | |
Even if FrameCapture is enabled, enable GL_OES_get_program_binary | |
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 | |
scalarizeVecAndMatConstructorArgs (Frontend workarounds) 1165751: Disabled: false | |
Always rewrite vec/mat constructors to be consistent | |
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: Enabled: 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: Disabled: 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): Enabled: !isMesa || isIntel && (Is9thGenIntel(device) || IsGeminiLake(device) || IsCoffeeLake(device) || Is11thGenIntel(device) || Is12thGenIntel(device)) | |
Enable ASTC on desktop OpenGL | |
allowClearForRobustResourceInit (OpenGL workarounds) 848952: Enabled: 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 | |
bindTransformFeedbackBufferBeforeBindBufferRange (OpenGL workarounds) anglebug:5140: Enabled: 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: Enabled: IsApple() || (IsLinux() && isAMD) | |
Issues with blitFramebuffer when the parameters don't match the framebuffer size. | |
decodeEncodeSRGBForGenerateMipmap (OpenGL workarounds) anglebug:4646: Enabled: IsApple() | |
Decode and encode before generateMipmap for srgb format textures. | |
disableBlendFuncExtended (OpenGL workarounds) anglebug:1085: Disabled: isAMD || isIntel | |
ARB_blend_func_extended does not pass the tests | |
disableClipCullDistance (OpenGL workarounds) anglebug:7763: Disabled: isQualcomm | |
Shader compiler does not handle redeclared built-ins. | |
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 | |
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)) || (IsAndroid() && IsMaliT8xxOrOlder(functions)) || (IsAndroid() && 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: IsAndroid() && 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: (IsAndroid() && 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 | |
emulateCopyTexImage2D (OpenGL workarounds): Enabled: 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: Enabled: IsApple() | |
GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver. | |
emulatePrimitiveRestartFixedIndex (OpenGL workarounds) anglebug:3997: Enabled: 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. | |
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: Enabled: 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: Enabled: IsApple() | |
All Mac drivers do not handle struct scopes correctly. This workaround overwrites a structname with a unique prefix. | |
removeDynamicIndexingOfSwizzledVector (OpenGL workarounds) 709351: Enabled: 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. | |
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): Enabled: 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: Enabled: IsApple() | |
Mac incorrectly executes both sides of && and || expressions when they should short-circuit. | |
unpackLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) anglebug:1512: Enabled: 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: IsAndroid() && isQualcomm | |
Drivers returning raw sRGB values instead of linearized values when calling glReadPixels on unsized sRGB texture formats | |
uploadTextureDataInChunks (OpenGL workarounds) 1181068: Enabled: IsApple() | |
Upload texture data in <120kb chunks to work around Mac driver hangs and crashes. | |
useUnusedBlocksWithStandardOrSharedLayout (OpenGL workarounds): Enabled: (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 | |
<Discrete GPU> Metal backend - Apple M1 | |
[Default Toggle Names] | |
always_resolve_into_zero_level_and_layer: https://crbug.com/dawn/56: When the resolve target is a texture view that is created on the non-zero level or layer of a texture, we first resolve into a temporarily 2D texture with only one mipmap level and one array layer, and copy the result of MSAA resolve into the true resolve target. This workaround is enabled by default on the Metal drivers that have bugs when setting non-zero resolveLevel or resolveSlice. | |
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. | |
metal_enable_vertex_pulling: https://crbug.com/dawn/480: Uses vertex pulling to protect out-of-bounds reads on Metal | |
disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet. | |
metal_use_dummy_blit_encoder_for_write_timestamp: https://crbug.com/dawn/1473: Add dummy blit command to blit encoder when encoding writeTimestamp as workaround on Metal.This toggle is enabled by default on Metal backend where GPU counters cannot be stored tosampleBufferAttachments on empty blit encoder. | |
[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. | |
[Supported Features] | |
texture-compression-bc | |
texture-compression-etc2 | |
texture-compression-astc | |
timestamp-query | |
depth-clip-control | |
depth32float-stencil8 | |
indirect-first-instance | |
shader-f16 | |
rg11b10ufloat-renderable | |
dawn-internal-usages | |
multiplanar-formats | |
dawn-native | |
<CPU> Vulkan backend - SwiftShader Device (LLVM 10.0.0) | |
[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. | |
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_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. | |
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] | |
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] | |
texture-compression-bc | |
texture-compression-etc2 | |
texture-compression-astc | |
timestamp-query | |
timestamp-query-inside-passes | |
depth-clip-control | |
depth32float-stencil8 | |
indirect-first-instance | |
rg11b10ufloat-renderable | |
dawn-internal-usages | |
dawn-native | |
Version Information | |
Data exported | |
2023-01-18T05:54:53.258Z | |
Chrome version | |
Chrome/109.0.5414.87 | |
Operating system | |
Mac OS X 12.6.0 | |
Software rendering list URL | |
https://chromium.googlesource.com/chromium/src/+/2dc18eb511c56e012081b4abc9e38c81c885f7d4/gpu/config/software_rendering_list.json | |
Driver bug list URL | |
https://chromium.googlesource.com/chromium/src/+/2dc18eb511c56e012081b4abc9e38c81c885f7d4/gpu/config/gpu_driver_bug_list.json | |
ANGLE commit id | |
aa63ea230e0c | |
2D graphics backend | |
Skia/109 9f5ce0f89e2ba479fdb57eebd13204bbed86922b | |
Command Line | |
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --restart --flag-switches-begin --flag-switches-end | |
Driver Information | |
Initialization time | |
454 | |
In-process GPU | |
false | |
Passthrough Command Decoder | |
true | |
Sandboxed | |
true | |
GPU0 | |
VENDOR= 0x106b [Google Inc. (Apple)], DEVICE=0x0000 [ANGLE (Apple, Apple M1, OpenGL 4.1 Metal - 76.3)], DRIVER_VENDOR=Apple, DRIVER_VERSION=76.3 *ACTIVE* | |
Optimus | |
false | |
AMD switchable | |
false | |
GPU CUDA compute capability major version | |
0 | |
Pixel shader version | |
1.00 | |
Vertex shader version | |
1.00 | |
Max. MSAA samples | |
4 | |
Machine model name | |
MacBookAir | |
Machine model version | |
10.1 | |
GL_VENDOR | |
Google Inc. (Apple) | |
GL_RENDERER | |
ANGLE (Apple, Apple M1, OpenGL 4.1 Metal - 76.3) | |
GL_VERSION | |
OpenGL ES 2.0.0 (ANGLE 2.1.19909 git hash: aa63ea230e0c) | |
GL_EXTENSIONS | |
GL_AMD_performance_monitor GL_ANGLE_base_vertex_base_instance GL_ANGLE_base_vertex_base_instance_shader_builtin GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_get_serialized_context_string GL_ANGLE_get_tex_level_parameter GL_ANGLE_instanced_arrays GL_ANGLE_logic_op GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_external_update GL_ANGLE_texture_rectangle GL_ANGLE_translated_shader_source GL_APPLE_clip_distance GL_ARB_sync GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_base_instance GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_draw_elements_base_vertex GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_multi_draw_indirect GL_EXT_multisample_compatibility GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_type_2_10_10_10_REV GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_NV_depth_buffer_float2 GL_NV_fence GL_NV_framebuffer_blit GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_NV_read_depth GL_NV_read_stencil GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_draw_elements_base_vertex GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_3D GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_texture_stencil8 GL_OES_vertex_array_object | |
Disabled Extensions | |
GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_MESA_framebuffer_flip_y | |
Disabled WebGL Extensions | |
Window system binding vendor | |
Window system binding version | |
Window system binding extensions | |
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 | |
Zero-copy | |
Partial Raster | |
Enabled | |
GpuMemoryBuffers Status | |
R_8 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
R_16 | |
Software only | |
RG_88 | |
Software only | |
RG_1616 | |
Software only | |
BGR_565 | |
Software only | |
RGBA_4444 | |
Software only | |
RGBX_8888 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
RGBA_8888 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
BGRX_8888 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
BGRA_1010102 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
RGBA_1010102 | |
Software only | |
BGRA_8888 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
RGBA_F16 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
YVU_420 | |
Software only | |
YUV_420_BIPLANAR | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
YUVA_420_TRIPLANAR | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
P010 | |
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING | |
Display(s) Information | |
Info | |
Display[2] bounds=[0,0 2560x1440], workarea=[0,25 2560x1415], scale=2, rotation=0, panel_rotation=0 external. | |
Color space (SDR) | |
{primaries:P3, transfer:0.0777*x + 0.0000 if x < 0.0450 else (0.9495*x + 0.0495)**2.3955 + 0.0003, matrix:RGB, range:FULL} | |
Buffer format (SDR) | |
RGBA_8888 | |
Color space (HDR) | |
{primaries:BT709, transfer:SRGB_HDR, matrix:RGB, range:FULL} | |
Buffer format (HDR) | |
RGBA_F16 | |
Color volume | |
{name:'p3', r:[0.6800, 0.3200], g:[0.2650, 0.6900], b:[0.1500, 0.3200], w:[0.3127, 0.3290]} | |
SDR white level in nits | |
203 | |
HDR relative maximum luminance | |
1.0625 | |
Bits per color component | |
10 | |
Bits per pixel | |
30 | |
Refresh Rate in Hz | |
60 | |
Video Acceleration Information | |
Decoding | |
Decode h264 baseline | |
16x16 to 4096x4096 pixels | |
Decode h264 extended | |
16x16 to 4096x4096 pixels | |
Decode h264 main | |
16x16 to 4096x4096 pixels | |
Decode h264 high | |
16x16 to 4096x4096 pixels | |
Decode vp9 profile0 | |
16x16 to 4096x4096 pixels | |
Decode vp9 profile2 | |
16x16 to 4096x4096 pixels | |
Decode hevc main | |
16x16 to 8192x8192 pixels | |
Decode hevc main 10 | |
16x16 to 8192x8192 pixels | |
Decode hevc main still-picture | |
16x16 to 8192x8192 pixels | |
Decode hevc range extensions | |
16x16 to 8192x8192 pixels | |
Encoding | |
Encode h264 baseline | |
0x0 to 4096x2304 pixels, and/or 120.000 fps | |
Encode h264 main | |
0x0 to 4096x2304 pixels, and/or 120.000 fps | |
Encode h264 high | |
0x0 to 4096x2304 pixels, and/or 120.000 fps | |
Vulkan Information | |
Device Performance Information | |
Log Messages | |
[22619:259:0118/101847.964030:ERROR:shared_image_manager.cc(251)] : SharedImageManager::ProduceOverlay: Trying to Produce a Overlay representation from a non-existent mailbox. | |
[22619:259:0118/101847.964066:ERROR:skia_output_device_buffer_queue.cc(332)] : Invalid mailbox. | |
[22619:259:0118/113737.499273:ERROR:shared_image_manager.cc(202)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. | |
[22619:259:0118/113737.501160:ERROR:shared_image_manager.cc(202)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. | |
[22619:259:0118/114300.386359:ERROR:shared_image_manager.cc(202)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. | |
[22619:259:0118/114300.388059:ERROR:shared_image_manager.cc(202)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment