-
-
Notifications
You must be signed in to change notification settings - Fork 155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hardware acceleration broken on Wayland Ozone #162
Comments
@oksakhartman
I believe this flag only works on X11, not Wayland. However, I am here to say that hardware acceleration doesn't work on Wayland (not XWayland). I am running on openSUSE Tumbleweed, Intel iGPU - UHD Graphics 620 (KBL GT2). |
@kreaninw @oksakhartman @Cir-0 The patches related to HW decoding and acceleration are not outdated, and are either made by me, or from ungoogled chromium which keeps them up to date. I have forced VaapiVideoDecodeLinuxGL to true in source code, so setting that from the cmdline will not help anything. I could make a beta build without any of the HW accel patches for ya'll to test. I could also look at what modifications that AUR package uses. I used to use the chromium-vaapi AUR package (made by the same maintainer, similar patches, just for X11) and it worked well. Continuous, stable, easy (no manual fiddeling) hardware acceleration has been a shitshow on linux for a while now, on anything but a X11 + intel graphics system. |
@oksakhartman Yeah then it must be my patches. Might have to remove some or all of them, or refactor them. |
@oksakhartman @Cir-0 I'm pretty sure its this patch I use > https://github.com/ungoogled-software/ungoogled-chromium-archlinux/blob/master/ozone-add-va-api-support-to-wayland.patch It hasn't been updated since last year! I have simply been rebasing the files by adding/deleting lines as needed by comparing my current one with upstream's one. It is probably breaking it. Instead I will use the patch from the wayland-vaapi AUR package. Although I will add this to the repo soon, this will not come to users (you) until M114. I sometimes will rebuild to fix major crashes, but in general, I don't update, rebuild, and re-release a major Thorium version. |
@kreaninw @oksakhartman @Cir-0 Please try the M114 version, and see if it fixes some or all of y'alls problems. |
Thanks, I tried it, but it doesn't fix the issue. Here's some log that's occurred as soon as I played the video:
Note: I already blocked AV1 which is not HWA supported on my GPU. Note 2: There's an upstream bug opening: https://bugs.chromium.org/p/chromium/issues/detail?id=1326754 |
v114 seems to have fixed the issue for me. I ran it right from the .zip's binary (I typically have it installed from the AUR but it hasn't been updated there yet), and with ozone hinting set to Wayland and hardware acceleration enabled, it launches right away in Wayland mode (not Xwayland), without the previous issues or terminal output. Looking at "chrome://gpu", it has the same feature status as regular Chromium, except Thorium has "Video Encode" set to "Hardware accelerated", while regular Chomium has "Video Encode" set to "Software only. Hardware acceleration disabled". Here's the "Video Acceleration Information" in Thorium from chrome://gpu:
I'm not sure if other codecs, like AV1, are supposed to be here. It might be worth noting that viewing a 4k video on Youtube uses ~15% CPU usage with Thorium, ~10% CPU usage in regular Chromium, and less than 1% CPU usage with Firefox Developer Edition (in Wayland mode with hardware acceleration enabled), which tells me that either hardware acceleration isn't working with youtube videos (VP9 codec) in Thorium/Chromium, or not as well as it should. Most video content I watch is through Youtube, so I will be sticking with Firefox for now until Thorium/Chromium can get CPU usage on par with Firefox. (I use Firefox instead of Mercury because Firefox is more stable for me, and Mercury is too out of date for me to comfortably use.) |
@kreaninw @ariankordi @oksakhartman @Cir-0 I have once again tried to fix this in the M115 release. Can ya'll please test and report back. |
Not working for me, although I have a different GPU (Intel 4th gen Haswell HD 4400). Tried with a lot of different flags combination. |
Same here, now the entire Video Acceleration Information section is blank for me 😕 with ChromeOSDirectVideoEncoder on or off, using intel-media-va-driver-non-free and free, on a fresh profile... |
Please provide the full content of the chrome://gpu page and upload it here |
chrome://gpu/ without any flagsGraphics 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 Skia Graphite: Disabled Video Decode: Hardware accelerated Video Encode: Software only. Hardware acceleration disabled Vulkan: Disabled WebGL: Hardware accelerated WebGL2: Hardware accelerated WebGPU: Disabled Driver Bug Workarounds adjust_src_dst_region_for_blitframebuffer clear_uniforms_before_first_program_use count_all_in_varyings_packing disable_post_sub_buffers_for_onscreen_surfaces enable_webgl_timer_query_extensions exit_on_context_lost msaa_is_slow msaa_is_slow_2 rely_on_implicit_sync_for_swap_buffers disabled_extension_GL_KHR_blend_equation_advanced disabled_extension_GL_KHR_blend_equation_advanced_coherent disabled_extension_GL_MESA_framebuffer_flip_y Problems Detected WebGPU has been disabled via blocklist or the command line. Disabled Features: webgpu Accelerated video encode has been disabled, either via blocklist, about:flags or the command line. Disabled Features: video_encode Clear uniforms before first program use on all platforms: [124764](http://crbug.com/124764), [349137](http://crbug.com/349137) Applied Workarounds: clear_uniforms_before_first_program_use Mesa drivers in Linux handle varyings without static use incorrectly: [333885](http://crbug.com/333885) Applied Workarounds: count_all_in_varyings_packing Disable partial swaps on Mesa drivers (detected with GL_RENDERER): [339493](http://crbug.com/339493) Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces On Intel GPUs MSAA performance is not acceptable for GPU rasterization: [527565](http://crbug.com/527565), [1298585](http://crbug.com/1298585) Applied Workarounds: msaa_is_slow Disable partial swaps on Mesa drivers (detected with GL_VERSION): [339493](http://crbug.com/339493) Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces adjust src/dst region if blitting pixels outside framebuffer on Linux Intel: [664740](http://crbug.com/664740) Applied Workarounds: adjust_src_dst_region_for_blitframebuffer Disable KHR_blend_equation_advanced until cc shaders are updated: [661715](http://crbug.com/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](http://crbug.com/808744), [870491](http://crbug.com/870491) Applied Workarounds: enable_webgl_timer_query_extensions Some drivers can't recover after OUT_OF_MEM and context lost: [893177](http://crbug.com/893177) Applied Workarounds: exit_on_context_lost Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Intel GPUs: [938286](http://crbug.com/938286) Applied Workarounds: rely_on_implicit_sync_for_swap_buffers Disable GL_MESA_framebuffer_flip_y for desktop GL: [964010](http://crbug.com/964010) Applied Workarounds: disable(GL_MESA_framebuffer_flip_y) On pre-Ice Lake Intel GPUs MSAA performance is not acceptable for GPU rasterization: [527565](http://crbug.com/527565), [1298585](http://crbug.com/1298585), [1341830](http://crbug.com/1341830) Applied Workarounds: msaa_is_slow_2 ANGLE Features allowCompressedFormats (Frontend workarounds): Enabled: true Allow compressed formats cacheCompiledShader (Frontend features) [anglebug:7036](http://anglebug.com/7036): Disabled Enable to cache compiled shaders disableAnisotropicFiltering (Frontend workarounds): Disabled Disable support for anisotropic filtering disableDrawBuffersIndexed (Frontend features) [anglebug:7724](http://anglebug.com/7724): Disabled Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed disableProgramBinary (Frontend features) [anglebug:5007](http://anglebug.com/5007): Disabled: IsPowerVrRogue(functions) Disable support for GL_OES_get_program_binary disableProgramCaching (Frontend features) [anglebug:1423136](http://anglebug.com/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](http://anglebug.com/7760): Disabled Write shader source to temp directory emulatePixelLocalStorage (Frontend features) [anglebug:7279](http://anglebug.com/7279): Enabled: true Emulate ANGLE_shader_pixel_local_storage using shader images enableCaptureLimits (Frontend features) [anglebug:5750](http://anglebug.com/5750): Disabled Set the context limits like frame capturing was enabled enableProgramBinaryForCapture (Frontend features) [anglebug:5658](http://anglebug.com/5658): Disabled Even if FrameCapture is enabled, enable GL_OES_get_program_binary enableShaderSubstitution (Frontend workarounds) [anglebug:7761](http://anglebug.com/7761): Disabled Check the filesystem for shaders to use instead of those provided through glShaderSource forceDepthAttachmentInitOnClear (Frontend workarounds) [anglebug:7246](https://anglebug.com/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](http://anglebug.com/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): Enabled: functions->standard == STANDARD_GL_DESKTOP && isIntel GL_RGBA4 is not color renderable RGBDXT1TexturesSampleZeroAlpha (OpenGL workarounds) [anglebug:3729](http://anglebug.com/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](http://crbug.com/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](https://crbug.com/848952%20http://crbug.com/883276): 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](http://crbug.com/110263): Enabled: true Always call useProgram after a successful link to avoid a driver bug alwaysUnbindFramebufferTexture2D (OpenGL workarounds) [anglebug:5536](https://anglebug.com/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 bindCompleteFramebufferForTimerQueries (OpenGL workarounds) [1356053](https://crbug.com/1356053): Disabled: IsMali(functions) Some drivers require a complete framebuffer when beginQuery for TimeElapsed orTimestampis called. bindTransformFeedbackBufferBeforeBindBufferRange (OpenGL workarounds) [anglebug:5140](https://anglebug.com/5140): Disabled: IsApple() Bind transform feedback buffers to the generic binding point before calling glBindBufferBase or glBindBufferRange. clampArrayAccess (OpenGL workarounds) [anglebug:2978](http://anglebug.com/2978): Disabled: 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](https://crbug.com/1042393): Enabled: 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](https://crbug.com/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](http://crbug.com/830046): Disabled: IsApple() || (IsLinux() && isAMD) Issues with blitFramebuffer when the parameters don't match the framebuffer size. decodeEncodeSRGBForGenerateMipmap (OpenGL workarounds) [anglebug:4646](http://anglebug.com/4646): Disabled: IsApple() Decode and encode before generateMipmap for srgb format textures. disableBaseInstanceVertex (OpenGL workarounds) [anglebug:8172](http://anglebug.com/8172): Disabled: IsMaliValhall(functions) Some drivers have buggy implementations of glDraw*BaseVertex*. disableBlendFuncExtended (OpenGL workarounds) [anglebug:1085](http://anglebug.com/1085): Disabled: (!isMesa && isQualcomm) || (IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 14, 0)) ARB_blend_func_extended does not pass the tests disableClipControl (OpenGL features) [1434317](http://crbug.com/1434317): Disabled: IsMaliG72OrG76(functions) Some devices genenerate errors when querying the clip control state disableDrawBuffersIndexed (OpenGL workarounds): Disabled: IsWindows() && isAMD Disable OES_draw_buffers_indexed extension. disableGPUSwitchingSupport (OpenGL workarounds) [1091824](https://crbug.com/1091824): Disabled: isDualGPUMacWithNVIDIA Disable GPU switching support (use only the low-power GPU) on older MacBook Pros. disableMultisampledRenderToTexture (OpenGL workarounds) [anglebug:2894](http://anglebug.com/2894): Disabled: isAdreno4xxOnAndroidLessThan51 || isAdreno4xxOnAndroid70 || isAdreno5xxOnAndroidLessThan70 || isAdreno5xxOnAndroid71 || isLinuxVivante || IsAndroid() Many drivers have bugs when using GL_EXT_multisampled_render_to_texture disableNativeParallelCompile (OpenGL workarounds) [1094869](http://crbug.com/1094869): Disabled: isTSANBuild && IsLinux() && isNvidia Do not use native KHR_parallel_shader_compile even when available. disableSemaphoreFd (OpenGL workarounds) [1046462](https://crbug.com/1046462): Disabled: IsLinux() && isAMD && isMesa && mesaVersion < (std::array{19, 3, 5}) Disable GL_EXT_semaphore_fd extension disableSyncControlSupport (OpenGL workarounds) [1137851](https://crbug.com/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](https://anglebug.com/7405): Disabled: isImagination Imagination devices generate INVALID_ENUM when setting the texture border color. disableTimestampQueries (OpenGL workarounds) [811661](https://crbug.com/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](http://crbug.com/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](http://crbug.com/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): Enabled: isIntel || isAMD Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled dontInitializeUninitializedLocals (OpenGL workarounds) [anglebug:2046](http://anglebug.com/2046): Disabled: !isMesa && isQualcomm Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests dontRelinkProgramsInParallel (OpenGL workarounds) [anglebug:3045](http://anglebug.com/3045): Disabled: IsAndroid() || (IsWindows() && isIntel) Relinking a program in parallel is buggy dontUseLoopsToInitializeVariables (OpenGL workarounds) [809422](http://crbug.com/809422): Disabled: (!isMesa && isQualcomm) || (isIntel && IsApple()) For loops used to initialize variables hit native GLSL compiler bugs emulateAbsIntFunction (OpenGL workarounds) [642227](http://crbug.com/642227): Disabled: IsApple() && isIntel abs(i) where i is an integer returns unexpected result emulateAtan2Float (OpenGL workarounds) [672380](http://crbug.com/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](https://anglebug.com/4674): Disabled: IsApple() && functions->standard == STANDARD_GL_ES && !(isAMD && IsWindows()) CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers. emulateImmutableCompressedTexture3D (OpenGL workarounds) [1060012](https://crbug.com/1060012): Disabled: isQualcomm Use non-immutable texture allocation to work around a driver bug. emulateIsnanFloat (OpenGL workarounds) [650547](http://crbug.com/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](http://anglebug.com/1936): Disabled: IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried emulatePackSkipRowsAndPackSkipPixels (OpenGL workarounds) [anglebug:4849](https://anglebug.com/4849): Disabled: IsApple() GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver. emulatePrimitiveRestartFixedIndex (OpenGL workarounds) [anglebug:3997](http://anglebug.com/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](https://crbug.com/1300575): Enabled: functions->standard == STANDARD_GL_DESKTOP Emulate RGB10 support using RGB10_A2. ensureNonEmptyBufferIsBoundForDraw (OpenGL features) [1456243](http://crbug.com/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](http://anglebug.com/4267): Disabled: IsApple() && isIntel Some drivers track CopyTex{Sub}Image texture dependencies incorrectly. Flush before glDeleteTextures in this case flushOnFramebufferChange (OpenGL workarounds) [1181068](http://crbug.com/1181068): Disabled: IsApple() && Has9thGenIntelGPU(systemInfo) Switching framebuffers without a flush can lead to crashes on Intel 9th Generation GPU Macs. initFragmentOutputVariables (OpenGL workarounds) [1171371](http://crbug.com/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](http://crbug.com/927470): Disabled: limitMaxTextureSize Limit max 3d texture size and max array texture layers to 1024 to avoid system hang limitMaxMSAASamplesTo4 (OpenGL workarounds) [797243](http://crbug.com/797243): Disabled: IsAndroid() || (IsApple() && (isIntel || isAMD || isNvidia)) Various rendering bugs have been observed when using higher MSAA counts limitWebglMaxTextureSizeTo4096 (OpenGL workarounds) [927470](http://crbug.com/927470): Disabled: IsAndroid() || limitMaxTextureSize Limit webgl max texture size to 4096 to avoid frequent out-of-memory errors packLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) [anglebug:1512](http://anglebug.com/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](http://anglebug.com/7527): Disabled: isQualcomm packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4. preAddTexelFetchOffsets (OpenGL workarounds) [642605](http://crbug.com/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](http://anglebug.com/5469): Disabled: IsApple() && hasAMD Packed color formats are buggy on Macs with AMD GPUs queryCounterBitsGeneratesErrors (OpenGL workarounds) [anglebug:3027](http://anglebug.com/3027): Disabled: IsNexus5X(vendor, device) Drivers generate errors when querying the number of bits in timer queries readPixelsUsingImplementationColorReadFormatForNorm16 (OpenGL workarounds) [anglebug:4214](http://anglebug.com/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](http://anglebug.com/1637): Disabled: isAMD || IsAndroid() Some drivers forget about UBO bindings when using program binaries regenerateStructNames (OpenGL workarounds) [403957](http://crbug.com/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](http://crbug.com/709351): Disabled: IsApple() || IsAndroid() || IsWindows() Dynamic indexing of swizzled l-values doesn't work correctly on various platforms. removeInvariantAndCentroidForESSL3 (OpenGL workarounds): Disabled: 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](https://crbug.com/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](http://crbug.com/308366): Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 0) Using '-' 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](http://anglebug.com/2273): Disabled: false Rewrite row major matrices in shaders as column major as a driver bug workaround sanitizeAMDGPURendererString (OpenGL workarounds) [1181193](http://crbug.com/1181193): Disabled: IsLinux() && hasAMD Strip precise kernel and DRM version information from amdgpu renderer strings. scalarizeVecAndMatConstructorArgs (OpenGL workarounds) [1420130](http://crbug.com/1420130): Disabled: IsMali(functions) Rewrite vec/mat constructors to work around driver bugs setPrimitiveRestartFixedIndexForDrawArrays (OpenGL workarounds) [anglebug:3997](http://anglebug.com/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](http://crbug.com/1144207): Disabled: IsApple() && IsIntel(vendor) && !IsHaswell(device) glDrawArraysInstanced is buggy on certain new Mac Intel GPUs supportsFragmentShaderInterlockARB (OpenGL features) [anglebug:7279](http://anglebug.com/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](http://anglebug.com/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](http://anglebug.com/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](http://anglebug.com/7279): Disabled: functions->hasGLESExtension("GL_EXT_shader_framebuffer_fetch") Backend GL context supports EXT_shader_framebuffer_fetch extension supportsShaderFramebufferFetchNonCoherentEXT (OpenGL features) [anglebug:7279](http://anglebug.com/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](http://anglebug.com/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](http://anglebug.com/5577): Disabled: !nativegl::SupportsVertexArrayObjects(functions) Only use the default VAO because of missing support or driver bugs unbindFBOBeforeSwitchingContext (OpenGL workarounds) [1181193](http://crbug.com/1181193): Disabled: IsPowerVR(vendor) Imagination GL drivers are buggy with context switching. unfoldShortCircuits (OpenGL workarounds) [anglebug:482](http://anglebug.com/482): Disabled: IsApple() Mac incorrectly executes both sides of && and || expressions when they should short-circuit. unpackLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) [anglebug:1512](http://anglebug.com/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](http://crbug.com/550292%20http://crbug.com/565179): Disabled: !isMesa && isQualcomm Drivers returning raw sRGB values instead of linearized values when calling glReadPixels on unsized sRGB texture formats uploadTextureDataInChunks (OpenGL workarounds) [1181068](http://crbug.com/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 chrome://gpu/ with 111 version flags (--disable-features=UseChromeOSDirectVideoDecoder --disable-gpu-memory-buffer-compositor-resources --disable-gpu-memory-buffer-video-frames --enable-hardware-overlays --enable-accelerated-video-decode --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,RawDraw --ozone-platform=wayland --ignore-gpu-blocklist --enable-gpu-rasterization --enable-zero-copy --disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers --use-cmd-decoder=passthrough --ozone-platform-hint=auto --use-vulkan --use-gl=egl)Graphics Feature Status Canvas: Software only, hardware acceleration unavailable Canvas out-of-process rasterization: Disabled Direct Rendering Display Compositor: Disabled Compositing: Software only. Hardware acceleration disabled Multiple Raster Threads: Enabled OpenGL: Disabled Rasterization: Software only. Hardware acceleration disabled Raw Draw: Enabled Skia Graphite: Disabled Video Decode: Software only. Hardware acceleration disabled Video Encode: Software only. Hardware acceleration disabled Vulkan: Disabled WebGL: Software only, hardware acceleration unavailable WebGL2: Software only, hardware acceleration unavailable WebGPU: Disabled Problems Detected WebGPU has been disabled via blocklist or the command line. Disabled Features: webgpu Gpu compositing has been disabled, either via blocklist, about:flags or the command line. The browser will fall back to software compositing and hardware acceleration will be unavailable. Disabled Features: gpu_compositing ANGLE Features allowCompressedFormats (Frontend workarounds): Disabled 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 Disable support for GL_OES_get_program_binary disableProgramCaching (Frontend features) anglebug:1423136: Disabled Disables saving programs to the cache disableProgramCachingForTransformFeedback (Frontend workarounds): Disabled 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: Disabled 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): Disabled 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 allocateNonZeroMemory (Vulkan features) anglebug:4384: Disabled Fill new allocations with non-zero values to flush out errors. allowGenerateMipmapWithCompute (Vulkan features) anglebug:4551: Disabled Use the compute path to generate mipmaps on devices that meet the minimum requirements, and the performance is better. appendAliasedMemoryDecorationsToSsbo (Vulkan workarounds) b/266235549: Disabled Append aliased memory decoration to ssbo in SpirV if the ssbo in GLSL is not declared with restrict memory qualifier asyncCommandBufferReset (Vulkan features) https://issuetracker.google.com/255411748: Disabled Reset command buffer in async thread. asyncCommandQueue (Vulkan features) anglebug:4324: Disabled Use CommandQueue worker thread to dispatch work to GPU. bottomLeftOriginPresentRegionRectangles (Vulkan workarounds): Disabled On some platforms present region rectangles are expected to have a bottom-left origin, instead of top-left origin as from spec bresenhamLineRasterization (Vulkan features): Disabled Enable Bresenham line rasterization via VK_EXT_line_rasterization extension clampPointSize (Vulkan workarounds) anglebug:2970: Disabled The point size range reported from the API is inconsistent with the actual behavior compressVertexData (Vulkan workarounds): Disabled Compress vertex data to smaller data types when possible. Using this feature makes ANGLE non-conformant. deferFlushUntilEndRenderPass (Vulkan workarounds) https://issuetracker.google.com/issues/166475273: Disabled Allow glFlush to be deferred until renderpass ends depthClamping (Vulkan workarounds) anglebug:3970: Disabled The depth value is not clamped to [0,1] for floating point depth buffers. disableFlippingBlitWithCommand (Vulkan workarounds) anglebug:3498: Disabled vkCmdBlitImage with flipped coordinates blits incorrectly. disallowMixedDepthStencilLoadOpNoneAndLoad (Vulkan workarounds) anglebug:7370: Disabled Disallow use of LOAD_OP_NONE for only one of the depth or stencil aspects of a depth/stencil attachment doubleDepthBiasConstantFactor (Vulkan workarounds): Disabled Due to a Vulkan spec ambiguity, some drivers interpret depthBiasConstantFactor as half the expected value eglColorspaceAttributePassthrough (Vulkan features) anglebug:7319: Disabled Support passthrough of EGL colorspace attribute values emulateAdvancedBlendEquations (Vulkan features) anglebug:3586: Disabled Emulate GL_KHR_blend_equation_advanced emulateDithering (Vulkan features) anglebug:6755: Disabled Emulate OpenGL dithering emulateR32fImageAtomicExchange (Vulkan workarounds) anglebug:5535: Disabled Emulate r32f images with r32ui to support imageAtomicExchange. emulateTransformFeedback (Vulkan features) anglebug:3205: Disabled Emulate transform feedback as the VK_EXT_transform_feedback is not present. emulatedPrerotation180 (Vulkan features) anglebug:4901: Disabled Emulate 180-degree prerotation. emulatedPrerotation270 (Vulkan features) anglebug:4901: Disabled Emulate 270-degree prerotation. emulatedPrerotation90 (Vulkan features) anglebug:4901: Disabled Emulate 90-degree prerotation. enableAsyncPipelineCacheCompression (Vulkan workarounds) anglebug:4722: Disabled Enable compressing pipeline cache in a thread. enableMultisampledRenderToTexture (Vulkan workarounds) anglebug:4937: Disabled Expose EXT_multisampled_render_to_texture enablePipelineCacheDataCompression (Vulkan features) https://issuetracker.google.com/258207403: Disabled enable pipeline cache data compression. enablePreRotateSurfaces (Vulkan features) anglebug:3502: Disabled Enable Android pre-rotation for landscape applications enablePrecisionQualifiers (Vulkan features) anglebug:3078: Disabled Enable precision qualifiers in shaders explicitlyCastMediumpFloatTo16Bit (Vulkan workarounds) https://issuetracker.google.com/274859104: Disabled Explicitly cast mediump floating point values to 16 bit explicitlyEnablePerSampleShading (Vulkan workarounds) anglebug:6876: Disabled Explicitly enable per-sample shading if the fragment shader contains the sample qualifier exposeNonConformantExtensionsAndVersions (Vulkan workarounds) anglebug:5375: Disabled Expose GLES versions and extensions that are not conformant. forceContinuousRefreshOnSharedPresent (Vulkan features) https://issuetracker.google.com/229267970: Disabled Force to create vulkan swapchain with continuous refresh on shared present forceD16TexFilter (Vulkan workarounds) anglebug:3452: Disabled VK_FORMAT_D16_UNORM does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, which prevents OES_depth_texture from being supported. forceFallbackFormat (Vulkan workarounds): Disabled Force a fallback format for angle_end2end_tests forceFragmentShaderPrecisionHighpToMediump (Vulkan workarounds) https://issuetracker.google.com/184850002: Disabled Forces highp precision in fragment shader to mediump. forceMaxUniformBufferSize16KB (Vulkan workarounds) https://issuetracker.google.com/161903006: Disabled Force max uniform buffer size to 16K on some device due to bug forceNearestFiltering (Vulkan workarounds): Disabled Force nearest filtering when sampling. forceNearestMipFiltering (Vulkan workarounds): Disabled Force nearest mip filtering when sampling. forceStaticPrimitiveRestartState (Vulkan workarounds) https://issuetracker.google.com/275210062: Disabled Force static state for VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE due to driver bugs forceStaticVertexStrideState (Vulkan workarounds) https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=107106: Disabled Force static state for VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT due to driver bugs forceSubmitImmutableTextureUpdates (Vulkan app workarounds) anglebug:6929: Disabled Force submit updates to immutable textures forceTextureLodOffset1 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 1 when sampling. forceTextureLodOffset2 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 2 when sampling. forceTextureLodOffset3 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 3 when sampling. forceTextureLodOffset4 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 4 when sampling. forceWaitForSubmissionToCompleteForQueryResult (Vulkan workarounds) https://issuetracker.google.com/253522366: Disabled Force wait for submission to complete before calling getQueryResult(wait). hasEffectivePipelineCacheSerialization (Vulkan features) anglebug:7369: Disabled Whether the implementation serializes the Vulkan pipeline cache effectively. On some implementations, pipeline cache serialization returns no data, so there is no benefit to serializing it limitSampleCountTo2 (Vulkan workarounds) anglebug:8162: Disabled Limit sample count to 2 to save memory on low end devices. logMemoryReportCallbacks (Vulkan features): Disabled Log each callback from VK_EXT_device_memory_report logMemoryReportStats (Vulkan features): Disabled Log stats from VK_EXT_device_memory_report each swap mapUnspecifiedColorSpaceToPassThrough (Vulkan features): Disabled Use VK_COLOR_SPACE_PASS_THROUGH_EXT for EGL_NONE or unspecifed color spaces mergeProgramPipelineCachesToGlobalCache (Vulkan workarounds) anglebug:7369: Disabled Whether it's beneficial to merge the pipeline cache for the shaders subset of the pipeline into the monolithic pipeline cache. Only useful on platforms where monolithic pipelines can reuse blobs from partial pipelines mutableMipmapTextureUpload (Vulkan features) anglebug:7308: Disabled Enable uploading the previously defined mutable mipmap texture. overrideSurfaceFormatRGB8ToRGBA8 (Vulkan workarounds) anglebug:6651: Disabled Override surface format GL_RGB8 to GL_RGBA8 padBuffersToMaxVertexAttribStride (Vulkan workarounds) anglebug:4428: Disabled Vulkan considers vertex attribute accesses to count up to the last multiple of the stride. This additional access supports AMD's robust buffer access implementation. AMDVLK in particular will return incorrect values when the vertex access extends into the range that would be the stride padding and the buffer is too small. This workaround limits GL_MAX_VERTEX_ATTRIB_STRIDE to a maximum value and pads up every buffer allocation size to be a multiple of the maximum stride. perFrameWindowSizeQuery (Vulkan workarounds) anglebug:3623: Disabled Vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE when window resizing permanentlySwitchToFramebufferFetchMode (Vulkan features): Disabled Whether the context should permanently switch to framebuffer fetch mode on first encounter persistentlyMappedBuffers (Vulkan features) anglebug:2162: Disabled Persistently map buffer memory to reduce map/unmap IOCTL overhead. preferAggregateBarrierCalls (Vulkan workarounds) anglebug:4633: Disabled Single barrier call is preferred over multiple calls with fine grained pipeline stage dependency information preferCPUForBufferSubData (Vulkan features) http://issuetracker.google.com/200067929: Disabled Prefer use CPU to do bufferSubData instead of staged update. preferDeviceLocalMemoryHostVisible (Vulkan features) anglebug:7047: Disabled Prefer adding HOST_VISIBLE flag for DEVICE_LOCAL memory when picking memory types preferDrawClearOverVkCmdClearAttachments (Vulkan workarounds) https://issuetracker.google.com/166809097: Disabled On some hardware, clear using a draw call instead of vkCmdClearAttachments in the middle of render pass due to bugs preferDriverUniformOverSpecConst (Vulkan features) anglebug:7406: Disabled Prefer using driver uniforms instead of specialization constants. preferLinearFilterForYUV (Vulkan features) anglebug:7382: Disabled Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion preferMonolithicPipelinesOverLibraries (Vulkan workarounds) anglebug:7369: Disabled Whether monolithic pipelines perform significantly better than libraries preferSkippingInvalidateForEmulatedFormats (Vulkan workarounds) anglebug:6860: Disabled Skipping invalidate is preferred for emulated formats that have extra channels over re-clearing the image preferSubmitAtFBOBoundary (Vulkan workarounds) https://issuetracker.google.com/187425444: Disabled Submit commands to driver at each FBO boundary for performance improvements. preferSubmitOnAnySamplesPassedQueryEnd (Vulkan workarounds) https://issuetracker.google.com/250706693: Disabled Submit commands to driver when last GL_ANY_SAMPLES_PASSED query is made for performance improvements. provokingVertex (Vulkan features): Disabled Enable provoking vertex mode via VK_EXT_provoking_vertex extension retainSPIRVDebugInfo (Vulkan features) anglebug:5901: Disabled Retain debug info in SPIR-V blob. roundOutputAfterDithering (Vulkan workarounds) anglebug:6953: Disabled Round output after dithering to workaround a driver bug that rounds the output up slowAsyncCommandQueueForTesting (Vulkan workarounds) anglebug:6574: Disabled Artificially slow down async command queue for threading testing slowDownMonolithicPipelineCreationForTesting (Vulkan workarounds) anglebug:7369: Disabled Artificially slow down async monolithic pipeline creation for threading testing supportsAndroidHardwareBuffer (Vulkan features): Disabled VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension supportsAndroidNativeFenceSync (Vulkan features) anglebug:2517: Disabled VkDevice supports the EGL_ANDROID_native_fence_sync extension supportsBindMemory2 (Vulkan features) anglebug:4966: Disabled VkDevice supports the VK_KHR_bind_memory2 extension supportsBlendOperationAdvanced (Vulkan features) anglebug:3586: Disabled VkDevice supports VK_EXT_blend_operation_advanced extension. supportsColorWriteEnable (Vulkan features) anglebug:7161: Disabled VkDevice supports VK_EXT_color_write_enable extension supportsComputeTranscodeEtcToBc (Vulkan features): Disabled supports compute shader transcode etc format to bc format supportsCustomBorderColor (Vulkan features) anglebug:3577: Disabled VkDevice supports the VK_EXT_custom_border_color extension supportsDepthClipControl (Vulkan features) anglebug:5421: Disabled VkDevice supports VK_EXT_depth_clip_control extension. supportsDepthClipEnable (Vulkan features) anglebug:3970: Disabled VkDevice supports the VK_EXT_depth_clip_enable extension. supportsDepthStencilResolve (Vulkan features) anglebug:4836: Disabled VkDevice supports the VK_KHR_depth_stencil_resolve extension with the independentResolveNone feature supportsExtendedDynamicState (Vulkan features) anglebug:5906: Disabled VkDevice supports VK_EXT_extended_dynamic_state extension supportsExtendedDynamicState2 (Vulkan features) anglebug:5906: Disabled VkDevice supports VK_EXT_extended_dynamic_state2 extension supportsExternalFenceCapabilities (Vulkan features): Enabled: isVulkan11Instance() || ExtensionFound("VK_KHR_external_fence_capabilities", instanceExtensionNames) VkInstance supports the VK_KHR_external_fence_capabilities extension supportsExternalFenceFd (Vulkan features) anglebug:2517: Disabled VkDevice supports the VK_KHR_external_fence_fd extension supportsExternalMemoryDmaBufAndModifiers (Vulkan features) anglebug:6248: Disabled VkDevice supports the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier extensions supportsExternalMemoryFd (Vulkan features): Disabled VkDevice supports the VK_KHR_external_memory_fd extension supportsExternalMemoryFuchsia (Vulkan features): Disabled VkDevice supports the VK_FUCHSIA_external_memory extension supportsExternalMemoryHost (Vulkan features): Disabled VkDevice supports the VK_EXT_external_memory_host extension supportsExternalSemaphoreCapabilities (Vulkan features): Enabled: isVulkan11Instance() || ExtensionFound("VK_KHR_external_semaphore_capabilities", instanceExtensionNames) VkInstance supports the VK_KHR_external_semaphore_capabilities extension supportsExternalSemaphoreFd (Vulkan features): Disabled VkDevice supports the VK_KHR_external_semaphore_fd extension supportsExternalSemaphoreFuchsia (Vulkan features): Disabled VkDevice supports the VK_FUCHSIA_external_semaphore extension supportsFilteringPrecision (Vulkan features): Disabled VkDevice supports the VK_GOOGLE_sampler_filtering_precision extension supportsFragmentShaderPixelInterlock (Vulkan features): Disabled VkDevice supports the VK_EXT_fragment_shader_interlock extension and has the fragmentShaderPixelInterlock feature supportsFragmentShadingRate (Vulkan features) anglebug:7172: Disabled VkDevice supports VK_KHR_fragment_shading_rate extension supportsGGPFrameToken (Vulkan features): Disabled VkDevice supports the VK_GGP_frame_token extension supportsGeometryStreamsCapability (Vulkan features) anglebug:3206: Disabled Implementation supports the GeometryStreams SPIR-V capability. supportsGetMemoryRequirements2 (Vulkan features) anglebug:4830: Disabled VkDevice supports the VK_KHR_get_memory_requirements2 extension supportsGraphicsPipelineLibrary (Vulkan features) anglebug:7369: Disabled VkDevice supports the VK_EXT_graphics_pipeline_library extension supportsHostQueryReset (Vulkan features) anglebug:6692: Disabled VkDevice supports VK_EXT_host_query_reset extension supportsImage2dViewOf3d (Vulkan features) anglebug:7320: Disabled VkDevice supports VK_EXT_image_2d_view_of_3d supportsImageCubeArray (Vulkan features) anglebug:3584: Disabled VkDevice supports the imageCubeArray feature properly supportsImageFormatList (Vulkan features) anglebug:5281: Disabled Enable VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT by default for ICDs that support VK_KHR_image_format_list supportsImagelessFramebuffer (Vulkan features) anglebug:7553: Disabled VkDevice supports VK_KHR_imageless_framebuffer extension supportsIncrementalPresent (Vulkan features): Disabled VkDevice supports the VK_KHR_incremental_present extension supportsIndexTypeUint8 (Vulkan features) anglebug:4405: Disabled VkDevice supports the VK_EXT_index_type_uint8 extension supportsLockSurfaceExtension (Vulkan features): Disabled Surface supports the EGL_KHR_lock_surface3 extension supportsLogicOpDynamicState (Vulkan features) anglebug:3862: Disabled VkDevice supports the logicOp feature of VK_EXT_extended_dynamic_state2 extension supportsMemoryBudget (Vulkan features): Disabled VkDevice supports the VK_EXT_memory_budget extension. supportsMixedReadWriteDepthStencilLayouts (Vulkan features) anglebug:7899: Disabled VkDevice supports the mixed read and write depth/stencil layouts introduced by VK_KHR_maintenance2 supportsMultiDrawIndirect (Vulkan features) anglebug:6439: Disabled VkDevice supports the multiDrawIndirect extension supportsMultisampledRenderToSingleSampled (Vulkan features) anglebug:4836: Disabled VkDevice supports the VK_EXT_multisampled_render_to_single_sampled extension supportsMultisampledRenderToSingleSampledGOOGLEX (Vulkan features) anglebug:4836: Disabled VkDevice supports the VK_GOOGLEX_multisampled_render_to_single_sampled extension supportsMultiview (Vulkan features) anglebug:6048: Disabled VkDevice supports the VK_KHR_multiview extension supportsNegativeViewport (Vulkan features): Disabled The driver supports inverting the viewport with a negative height. supportsPipelineCreationCacheControl (Vulkan features) anglebug:5881: Disabled VkDevice supports VK_EXT_pipeline_creation_cache_control extension supportsPipelineCreationFeedback (Vulkan features) anglebug:5881: Disabled VkDevice supports VK_EXT_pipeline_creation_feedback extension supportsPipelineProtectedAccess (Vulkan features) anglebug:7714: Disabled VkDevice supports the VK_EXT_pipeline_protected_access extension supportsPipelineRobustness (Vulkan features) anglebug:5845: Disabled VkDevice supports VK_EXT_pipeline_robustness extension supportsPipelineStatisticsQuery (Vulkan features) anglebug:5430: Disabled VkDevice supports the pipelineStatisticsQuery feature supportsPresentation (Vulkan features): Disabled VkDisplay supports presentation through a present family queue supportsPrimitiveTopologyListRestart (Vulkan features) anglebug:3832: Disabled VkDevice supports VK_EXT_primitive_topology_list_restart extension. supportsPrimitivesGeneratedQuery (Vulkan features) anglebug:5430: Disabled VkDevice supports VK_EXT_primitives_generated_query extension supportsProtectedMemory (Vulkan features) anglebug:3965: Disabled VkDevice supports protected memory supportsRasterizationOrderAttachmentAccess (Vulkan features) anglebug:7604: Disabled VkDevice supports VK_EXT_rasterization_order_attachment_access extension supportsRenderPassLoadStoreOpNone (Vulkan features) anglebug:5371: Disabled VkDevice supports VK_EXT_load_store_op_none extension. supportsRenderPassStoreOpNone (Vulkan features) anglebug:5055: Disabled VkDevice supports VK_QCOM_render_pass_store_ops extension. supportsRenderpass2 (Vulkan features): Disabled VkDevice supports the VK_KHR_create_renderpass2 extension supportsSampler2dViewOf3d (Vulkan features) anglebug:7320: Disabled VkDevice supports the sampler2DViewOf3D feature of VK_EXT_image_2d_view_of_3d supportsSamplerMirrorClampToEdge (Vulkan features): Disabled VkDevice supports the VK_KHR_sampler_mirror_clamp_to_edge extension supportsShaderFloat16 (Vulkan features) anglebug:4551: Disabled VkDevice supports the VK_KHR_shader_float16_int8 extension and has the shaderFloat16 feature supportsShaderFramebufferFetch (Vulkan features): Disabled Whether the Vulkan backend supports coherent framebuffer fetch supportsShaderFramebufferFetchNonCoherent (Vulkan features): Disabled Whether the Vulkan backend supports non-coherent framebuffer fetch supportsShaderStencilExport (Vulkan features): Disabled VkDevice supports the VK_EXT_shader_stencil_export extension supportsSharedPresentableImageExtension (Vulkan features): Disabled VkSurface supports the VK_KHR_shared_presentable_images extension supportsSurfaceCapabilities2Extension (Vulkan features): Enabled: ExtensionFound("VK_KHR_get_surface_capabilities2", instanceExtensionNames) VkInstance supports the VK_KHR_get_surface_capabilities2 extension supportsSurfaceProtectedCapabilitiesExtension (Vulkan features): Disabled: ExtensionFound("VK_KHR_surface_protected_capabilities", instanceExtensionNames) VkInstance supports the VK_KHR_surface_protected_capabilities extension supportsSurfaceProtectedSwapchains (Vulkan features): Disabled VkSurface supportsProtected for protected swapchains supportsSurfacelessQueryExtension (Vulkan features): Disabled: ExtensionFound("VK_GOOGLE_surfaceless_query", instanceExtensionNames) && !isMockICDEnabled() VkInstance supports the VK_GOOGLE_surfaceless_query extension supportsSwapchainMaintenance1 (Vulkan features) anglebug:7847: Disabled VkDevice supports the VK_EXT_surface_maintenance1 and VK_EXT_swapchain_maintenance1 extensions supportsTimestampSurfaceAttribute (Vulkan features) anglebug:7489: Disabled Platform supports setting frame timestamp surface attribute supportsTransformFeedbackExtension (Vulkan features) anglebug:3206: Disabled Transform feedback uses the VK_EXT_transform_feedback extension. supportsVertexInputDynamicState (Vulkan features) anglebug:7162: Disabled VkDevice supports VK_EXT_vertex_input_dynamic_state extension supportsYUVSamplerConversion (Vulkan features): Disabled VkDevice supports the VK_KHR_sampler_ycbcr_conversion extension supportsYuvTarget (Vulkan features): Disabled VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment swapbuffersOnFlushOrFinishWithSingleBuffer (Vulkan features) anglebug:6878: Disabled Bypass deferredFlush with calling swapbuffers on flush or finish when in Shared Present mode syncMonolithicPipelinesToBlobCache (Vulkan workarounds) anglebug:7369: Disabled Whether it's beneficial to store monolithic pipelines in the blob cache when VK_EXT_graphics_pipeline_library is in use. Otherwise the libraries are stored only, and monolithic pipelines are recreated on every run useMultipleDescriptorsForExternalFormats (Vulkan workarounds) anglebug:6141: Disabled Return a default descriptor count for external formats. useNonZeroStencilWriteMaskStaticState (Vulkan workarounds) anglebug:7556: Disabled Work around a driver bug where 0 in stencil write mask static state would make the corresponding dynamic state malfunction in the presence of discard or alpha to coverage useResetCommandBufferBitForSecondaryPools (Vulkan workarounds): Disabled Use VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT for initializing SecondaryCommandPools when using VulkanSecondaryCommandBuffer. useVmaForImageSuballocation (Vulkan features): Disabled Utilize VMA for image memory suballocation. varyingsRequireMatchingPrecisionInSpirv (Vulkan workarounds) anglebug:7488: Disabled Add additional SPIRV instructions to make sure precision between shader stages match with each other waitIdleBeforeSwapchainRecreation (Vulkan workarounds) anglebug:5061: Disabled Before passing an oldSwapchain to VkSwapchainCreateInfoKHR, wait for queue to be idle. Works around a bug on platforms which destroy oldSwapchain in vkCreateSwapchainKHR. warmUpPipelineCacheAtLink (Vulkan features) anglebug:5881: Disabled Warm up the Vulkan pipeline cache at link time DAWN Info chrome://gpu/ from version 111 with above flags (acceleration working, confirmed with intel_gpu_top)
|
@oksakhartman It has never worked for me on unpatched Chromium, especially on Wayland. |
Let me play with toys then.
|
@konradmb @oksakhartman @ariankordi @Cir-0 @kreaninw Try passing only the following startup parameters
If there are corresponding function switches in chrome://flags, they can also be turned on. If no other hardware acceleration patches are added, the hardware acceleration of the current Linux version should only support VAAPI, and it is best to ensure that the graphics card driver is working properly and is up to date. Please note that passing the above two startup parameters on the Linux platform may not necessarily enable hardware acceleration, and a soft solution is required for final guarantee. |
@konradmb @kreaninw @ariankordi This is actually expected. I removed the wayland vaapi patch, as it was causing too many bugs. Chromium doesn't have HW video decode acceleration on wayland at all upstream. Im sorry. If someone can find an up to date/working patch, then I can add it. The one I was using was from arch linux and was very outdated, not to mention that it changed files that are already changed by the vaapi and vdpau patches. @gz83 These patches are: |
@oksakhartman The i965 patch shouldn't interfere with VAAPI for other things, but that doesn't mean it doesn't. The reason I use those two patches is because Ungoogled Chromium, Debian, and Ubuntu use them and has been well tested. Since Mesa 21, the i965 driver is used for 3rd Gen intel and below, which still makes up a significant portion of users. |
I use vanilla chrome with only this But i affect this bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1467689 thorium fix it ? |
same here on Ubuntu 23.04 google-chrome-stable after a switch to Wayland (in flags, GPU report``` Graphics Feature Status ======================= * Canvas: Software only, hardware acceleration unavailable * Canvas out-of-process rasterization: Disabled * Direct Rendering Display Compositor: Disabled * Compositing: Software only. Hardware acceleration disabled * Multiple Raster Threads: Enabled * OpenGL: Disabled * Rasterization: Software only. Hardware acceleration disabled * Raw Draw: Disabled * Skia Graphite: Disabled * Video Decode: Software only. Hardware acceleration disabled * Video Encode: Software only. Hardware acceleration disabled * Vulkan: Disabled * WebGL: Software only, hardware acceleration unavailable * WebGL2: Software only, hardware acceleration unavailable * WebGPU: DisabledProblems Detected
ANGLE Features
DAWN InfoVulkan backend - NVIDIA GeForce RTX 3060 Ti[WebGPU Status]
[Default Toggle Names]
[WebGPU Forced Toggles - enabled]
[Default Supported Features]
Vulkan backend - llvmpipe (LLVM 15.0.7, 256 bits)[WebGPU Status]
[Default Toggle Names]
[WebGPU Forced Toggles - enabled]
[Default Supported Features]
Vulkan backend - SwiftShader Device (Subzero)[WebGPU Status]
[Default Toggle Names]
[WebGPU Forced Toggles - enabled]
[Default Supported Features]
Version InformationData exported : 2023-10-18T08:21:49.845Z Driver InformationInitialization time : 84 Compositor InformationTile Update Mode: One-copy GpuMemoryBuffers StatusR_8 : Software only Display(s) InformationInfo : Display[5] bounds=[0,0 2752x1152], workarea=[0,0 2752x1152], scale=1.25, rotation=0, panel_rotation=0 external detected Video Acceleration InformationDecoding: Vulkan InformationDevice Performance InformationDriver Information for Hardware GPUInitialization time : 274 Graphics Feature Status for Hardware GPU
Driver Bug Workarounds for Hardware GPU
Problems Detected for Hardware GPU
Log Messages[35541:35541:1018/122127.651423:WARNING:gbm_surfaceless_wayland.cc(150)] : Only solid color overlay planes are allowed to be scheduled without backing.
|
If you're on NVIDIA, check my post here for flags (I managed to get full hardware acceleration in the past): I ended up switching to AMD and here's my updated/current flags: |
I saw this reported on Arch Linux forum. Will it finally improve hardware acceleration on native Wayland from v119? |
It seems that this patch is only merged in the main branch for the time being, and the corresponding version is 120 |
I use 119 beta Chrome and it contain the fix. I already tested. |
What is your GPU and which flag do you use for the hardware acceleration? |
Intel® HD Graphics 520 only |
Are you running Chrome/Chromium using |
@Alex313031, is there any way to run Thorium with VAAPI under Wayland session with i965 driver for intel HD 4000 graphics? |
And AMDGPU also. Thanks. |
I tried Chromium 119 and still no hardware acceleration on AMDGPU. Tested both ozone Wayland and X11. |
Looks like Chromium 120 fixed hardware acceleration on ozone Wayland for NVIDIA. VAAPI doesn't seem to work though. https://bugs.chromium.org/p/chromium/issues/detail?id=1273758#c11 |
I cant even run Thorium on wayland. It rarely even opens, but even if it does, it crashes under a few minutes |
@rabaimor i am on wayland (AMD gpu, nobara 39) and have zero issues running it. Post your specs, that'll help a lot. |
@vampywiz17 @archerallstars @feakuru @Fiffian @Cir-0 I will be adding a flag to chrome://flags to control the VaapiVideoDecodeLinuxGL flag, since I have it enabled by default, but there are some instances you would want it disabled. It might also help y'all to pass the |
@vampywiz17 @archerallstars @feakuru @Fiffian @Cir-0 Added a chrome://flags/#vaapi-video-decode-linux-gl flag to M120. |
I still have this issue with the latest Thorium 124 from AUR. Using Ryzen 5600g's GPU and amdgpu opensource driver. Using latest KDE Plasma. If I don't switch to Ozone, then Thorium becomes sluggish and laggy from time to time, even to switch tabs. But then with Ozone=Auto, all WebGL and hardware acceleration is disabled :( It seems the same issue reported at https://www.reddit.com/r/wayland/comments/17u282f/google_chrome_freezinglagging/ |
What graphics card are you using? |
@gz83 onboard Ryzen 5600g GPU |
The upstream issue may be helpful to you, and comes with a patch. But please note that the patch I have landed in the M129 version, can you test the flags on your device and see if the patch works for you? If the flags and patch work fine on your device, I will discuss with Alex whether to temporarily port the patch to Thorium. |
System Details
Problem
I am running Hyprland (v0.26.0-1.1), a tiling Wayland compositor. By default, Thorium launches using Xwayland.
When manually setting the "Preferred Ozone platform" to "Wayland" in the flags, I noticed that it takes about 15 seconds to launch. When launched from a terminal, it outputs:
When disabling hardware acceleration in the settings, or launching with the parameters "--disable-gpu" or "--disable-gpu-compositing", it launches immediately, of course, with hardware acceleration disabled, but I would like it to be enabled and not running through Xwayland.
Additional Notes
If launched with the parameter "--disable-gpu-process-crash-limit", it will output
GPU process exited unexpectedly: exit_code=7
indefinitely. I tried to look in the "Chromium code search" documentation, but could not find what exit code 7 means (I am not a programmer).
I had this same issue with Thorium v112, on Hyprland v0.25 as well.
Regular Chromium (Version 114.0.5735.90 (Official Build) Arch Linux (64-bit)) does not have this issue and launches without error when "Preferred Ozone platform" is set to "Wayland", with hardware acceleration enabled.
The text was updated successfully, but these errors were encountered: