Jump to content

Recommended Posts

Posted

Hey everyone, 

i bought a Rock 3A to get an alternative to Raspberri pi.

The armbian was the system which is closest to the raspberrian and i'm glad that it works so well.

But Videos 720p, 1080p mp4 play horrible bad. When i use the included videoplayer or install vlc and start a video it is laggy and slow and not useable.

Is there any additional driver i have to install? Do i have to choose a different encoder?

Or is the Rock 3A not capeable of playing Videos?

 

Thank you and best regards.

Posted
21 минуту назад, Igor сказал:

We might get some luck in kernel 5.19.y -

I tested (Armbian and Libreelec) the rk356x (Station P2\M2 Quartz64 Banana PI r2 pro)  - it plays 1080p video in MPV\KODI without any problems kernel >=5.17.

 

Posted
17 hours ago, balbes150 said:

I tested (Armbian and Libreelec) the rk356x (Station P2\M2 Quartz64 Banana PI r2 pro)  - it plays 1080p video in MPV\KODI without any problems kernel >=5.17.

 

I can play 1080p video using kodi with v4l2-request patched ffmpeg. I can also use command `ffmpeg -hwaccel drm -hwaccel_output_format drm_prime -i bbb_sunflower_1080p_30fps_normal.mp4 -f null -` to decode the video, but I failed to play video using mpv with hardware accel, what am I missing?

Posted
1 час назад, amazingfate сказал:

I can play 1080p video using kodi with v4l2-request patched ffmpeg. I can also use command `ffmpeg -hwaccel drm -hwaccel_output_format drm_prime -i bbb_sunflower_1080p_30fps_normal.mp4 -f null -` to decode the video, but I failed to play video using mpv with hardware accel, what am I missing?

I don't have rock 3a, I don't know what's wrong with it. I described the facts, I regularly run a test video on the devices indicated in the message and the video is played without problems in Armbian in a window or on full screen (regular video playback programs are used, mpv\celsior). I have not changed FFMPEG in Armbian. In Libreelec, I can enable the display of information when playing a video and it says that HW is used (but not for all formats). But even with SW decoding, test videos play well up to 1440p (DE is set to 1080p).

Posted

Thank you for these fast and detailed answers.

That means it's not possible currently to use the Rock 3A as a Mediaserver, Videoplayer with Armbian?

Can anybode tell me what is so hard, because i try every 2-3 years to get a pi alternative but all struggle at the Video Player part.

When i install android on any rock board it seems to work, but Android is not an alternative for me.

Same for Pine Boards.

 

Posted
7 hours ago, amazingfate said:

I can play 1080p video using kodi with v4l2-request patched ffmpeg. I can also use command `ffmpeg -hwaccel drm -hwaccel_output_format drm_prime -i bbb_sunflower_1080p_30fps_normal.mp4 -f null -` to decode the video, but I failed to play video using mpv with hardware accel, what am I missing?

First of all, I assume you installed patched ffmpeg libraries system wide? I saw mpv complain if installed ffmpeg libraries are different version that the version that mpv was built with. In such case, you have to also rebuild mpv. Second, mpv will use v4l2 request acceleration only in gbm mode, e.g. when no desktop environment is running. I guess nobody wrote support for converting dma-bufs to gles buffers, even though mesa have function for exactly that.

38 minutes ago, Clericer said:

That means it's not possible currently to use the Rock 3A as a Mediaserver, Videoplayer with Armbian?

Can anybode tell me what is so hard, because i try every 2-3 years to get a pi alternative but all struggle at the Video Player part.

When i install android on any rock board it seems to work, but Android is not an alternative for me.

Same for Pine Boards.

Simple, RPi foundation has enough power to convince various players to support their proprietary API. Others did not. Similarly, Android is popular enough that vendors hammer their own proprietary solution into their ports. Only now various HW decoders are being unified under v4l2, either with request api or stateful api. Currently only gstreamer has good native support for these apis out of the box (HEVC will be supported in next stable release).

Posted
17 hours ago, Clericer said:

Thank you for these fast and detailed answers.

That means it's not possible currently to use the Rock 3A as a Mediaserver, Videoplayer with Armbian?

Can anybode tell me what is so hard, because i try every 2-3 years to get a pi alternative but all struggle at the Video Player part.

When i install android on any rock board it seems to work, but Android is not an alternative for me.

Same for Pine Boards.

 

You can play 1080p video with hardware decode using kodi. You have to install a v4l2-request patched ffmpeg and kodi rebuilt with option `-DAPP_RENDER_SYSTEM=gles`. You can see more detailed info from this post: https://forum.radxa.com/t/app-kodi-on-armbian-with-hardware-accelerating-decode/10170

Posted (edited)

Hello @Clericer Today i was Testing Armbian on Radxa Rock 3A.

Mali gpu I still can't play videos on Armbian "kernel 5.19" and "6.01"

But, Ark Linux Manjaro ARM releases a patched 22.10 version of Radxa Rock 3A
and it contains all patches for Mali working great for desktop environment.
I tested this and it worked great, too bad I'm a debian user.

 

Quote

glmark2 -s 1280x720 --fullscreen
=======================================================
    glmark2 2021.12
=======================================================
    OpenGL Information
    GL_VENDOR:     Panfrost
    GL_RENDERER:   Mali-G52 r1 (Panfrost)
    GL_VERSION:    3.1 Mesa 22.2.3
=======================================================
[build] use-vbo=false: FPS: 252 FrameTime: 3.968 ms
[build] use-vbo=true: FPS: 256 FrameTime: 3.906 ms
[texture] texture-filter=nearest: FPS: 373 FrameTime: 2.681 ms
[texture] texture-filter=linear: FPS: 374 FrameTime: 2.674 ms
[texture] texture-filter=mipmap: FPS: 376 FrameTime: 2.660 ms
[shading] shading=gouraud: FPS: 186 FrameTime: 5.376 ms
[shading] shading=blinn-phong-inf: FPS: 186 FrameTime: 5.376 ms
[shading] shading=phong: FPS: 174 FrameTime: 5.747 ms
[shading] shading=cel: FPS: 172 FrameTime: 5.814 ms
[bump] bump-render=high-poly: FPS: 89 FrameTime: 11.236 ms
[bump] bump-render=normals: FPS: 392 FrameTime: 2.551 ms
[bump] bump-render=height: FPS: 337 FrameTime: 2.967 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 124 FrameTime: 8.065 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 49 FrameTime: 20.408 ms
[pulsar] light=false:quads=5:texture=false: FPS: 342 FrameTime: 2.924 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 60 FrameTime: 16.667 ms
[desktop] effect=shadow:windows=4: FPS: 228 FrameTime: 4.386 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 73 FrameTime: 13.699 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 72 FrameTime: 13.889 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 68 FrameTime: 14.706 ms
[ideas] speed=duration: FPS: 165 FrameTime: 6.061 ms
[jellyfish] <default>: FPS: 143 FrameTime: 6.993 ms
[terrain] <default>: FPS: 11 FrameTime: 90.909 ms
[shadow] <default>: FPS: 100 FrameTime: 10.000 ms
[refract] <default>: FPS: 19 FrameTime: 52.632 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 329 FrameTime: 3.040 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 254 FrameTime: 3.937 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 333 FrameTime: 3.003 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 316 FrameTime: 3.165 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 212 FrameTime: 4.717 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 316 FrameTime: 3.165 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 315 FrameTime: 3.175 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 217 FrameTime: 4.608 ms
=======================================================
                                  glmark2 Score: 209 
=======================================================
 



i think this topic brings the Bifrost GPU to linux

can we translate it to debian? @balbes150

Edited by hotnikq
Posted
On 7/21/2022 at 9:44 AM, amazingfate said:

You can play 1080p video with hardware decode using kodi.

 

Latest stable version of mpv also supports video playback with patched ffmpeg, even in x11 and wayland. If Armbian would package such ffmpeg, it would make almost trivial for people to watch movies using mpv on desktop.

Posted
16 hours ago, hotnikq said:

can we translate it to debian?


Don't have Rock 3A, but 3D acceleration is present in all Armbian desktop builds OOB since years. Video acceleration within browsers? That is something else and doesn't work in Linux. Any.

 

14 hours ago, hotnikq said:

i think we can find something on manjaro


Their ARM section development is more or less porting from Armbian and build what comes to upstream.

Posted (edited)
6 hours ago, Igor said:

Video acceleration within browsers? That is something else and doesn't work in Linux. Any.


i feel like we missed some detail in debian, 
I don't see 3D performance difference from android here in this ARK
 

i see Mesa drivers on debian, but is it enabled by default?
i think Regular users dont know how to link new drivers to sys.
 

From Manjaro Rock 3A 22.10
Chromium-gpu-rock-3A.png?1670588662

chrome://gpu/

Quote

Graphics Feature Status

Canvas: Hardware accelerated

Canvas out-of-process rasterization: Enabled

Direct Rendering Display Compositor: Disabled

Compositing: Hardware accelerated

Multiple Raster Threads: Enabled

OpenGL: Enabled

Rasterization: Hardware accelerated on all pages

Raw Draw: 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

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

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, 349137
Applied Workarounds: clear_uniforms_before_first_program_use

Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing

Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces

Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
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

Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost

Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y)

ANGLE Features

allowCompressedFormats (Frontend workarounds): Enabled: true
Allow compressed formats

cacheCompiledShader (Frontend features) anglebug:7036: Disabled
Enable to cache compiled shaders

disableAnisotropicFiltering (Frontend workarounds): Disabled
Disable support for anisotropic filtering

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

RGBA4IsNotSupportedForColorRendering (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isIntel
GL_RGBA4 is not color renderable

RGBDXT1TexturesSampleZeroAlpha (OpenGL workarounds) anglebug:3729: Disabled: IsApple()
Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.

addAndTrueToLoopCondition (OpenGL workarounds): Disabled: IsApple() && isIntel
Calculation of loop conditions in for and while loop has bug

adjustSrcDstRegionForBlitFramebuffer (OpenGL workarounds) 830046: Enabled: IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia) || (IsApple() && functions->standard == STANDARD_GL_ES)
Many platforms have issues with blitFramebuffer when the parameters are large.

allowAstcFormats (OpenGL workarounds): Disabled: !isMesa || isIntel && (Is9thGenIntel(device) || IsGeminiLake(device) || IsCoffeeLake(device) || Is11thGenIntel(device) || Is12thGenIntel(device))
Enable ASTC on desktop OpenGL

allowClearForRobustResourceInit (OpenGL workarounds) 848952: Disabled: IsApple()
Using glClear for robust resource initialization is buggy on some drivers and leads to texture corruption. Default to data uploads except on MacOS where it is very slow.

allowETCFormats (OpenGL workarounds): Disabled: isIntel && !IsSandyBridge(device) && !IsIvyBridge(device) && !IsHaswell(device)
Enable ETC2/EAC on desktop OpenGL

alwaysCallUseProgramAfterLink (OpenGL workarounds) 110263: Enabled: true
Always call useProgram after a successful link to avoid a driver bug

alwaysUnbindFramebufferTexture2D (OpenGL workarounds) anglebug:5536: Disabled: isNvidia && (IsWindows() || IsLinux())
Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug.

avoid1BitAlphaTextureFormats (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isAMD
Issue with 1-bit alpha framebuffer formats

bindTransformFeedbackBufferBeforeBindBufferRange (OpenGL workarounds) anglebug:5140: Disabled: IsApple()
Bind transform feedback buffers to the generic binding point before calling glBindBufferBase or glBindBufferRange.

clampArrayAccess (OpenGL workarounds) anglebug:2978: Enabled: IsAndroid() || isAMD || !functions->hasExtension("GL_KHR_robust_buffer_access_behavior")
Clamp uniform array access to avoid reading invalid memory.

clampFragDepth (OpenGL workarounds): Disabled: isNvidia
gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer

clampMscRate (OpenGL workarounds) 1042393: 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: Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6)
Clears when the clear color is all zeros or ones do not work.

clipSrcRegionForBlitFramebuffer (OpenGL workarounds) 830046: Disabled: IsApple() || (IsLinux() && isAMD)
Issues with blitFramebuffer when the parameters don't match the framebuffer size.

decodeEncodeSRGBForGenerateMipmap (OpenGL workarounds) anglebug:4646: Disabled: IsApple()
Decode and encode before generateMipmap for srgb format textures.

disableBlendFuncExtended (OpenGL workarounds) anglebug:1085: Disabled: isAMD || isIntel
ARB_blend_func_extended does not pass the tests

disableDrawBuffersIndexed (OpenGL workarounds): Disabled: IsWindows() && isAMD
Disable OES_draw_buffers_indexed extension.

disableGPUSwitchingSupport (OpenGL workarounds) 1091824: Disabled: isDualGPUMacWithNVIDIA
Disable GPU switching support (use only the low-power GPU) on older MacBook Pros.

disableMultisampledRenderToTexture (OpenGL workarounds) anglebug:2894: Disabled: isAdreno4xxOnAndroidLessThan51 || isAdreno4xxOnAndroid70 || isAdreno5xxOnAndroidLessThan70 || isAdreno5xxOnAndroid71 || isLinuxVivante
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): Disabled: isApple
Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D.

emulateCopyTexImage2DFromRenderbuffers (OpenGL workarounds) anglebug:4674: Disabled: IsApple() && functions->standard == STANDARD_GL_ES && !(isAMD && IsWindows())
CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers.

emulateImmutableCompressedTexture3D (OpenGL workarounds) 1060012: Disabled: isQualcomm
Use non-immutable texture allocation to work around a driver bug.

emulateIsnanFloat (OpenGL workarounds) 650547: Disabled: isIntel && IsApple() && IsSkylake(device) && GetMacOSVersion() < OSVersion(10, 13, 2)
Using isnan() on highp float will get wrong answer

emulateMaxVertexAttribStride (OpenGL workarounds) anglebug:1936: Disabled: IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD
Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried

emulatePackSkipRowsAndPackSkipPixels (OpenGL workarounds) anglebug:4849: Disabled: IsApple()
GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver.

emulatePrimitiveRestartFixedIndex (OpenGL workarounds) anglebug:3997: 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: Disabled: IsApple() || isNvidia
When uploading textures from an pack buffer, some drivers count an extra row padding

packOverlappingRowsSeparatelyPackBuffer (OpenGL workarounds): Disabled: isNvidia
In the case of packing to a pixel pack buffer, pack overlapping rows row by row

passHighpToPackUnormSnormBuiltins (OpenGL workarounds) anglebug:7527: Disabled: isQualcomm
packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4.

preAddTexelFetchOffsets (OpenGL workarounds) 642605: Disabled: IsApple() && isIntel
Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid even if the sum of position and offset is in range, so we need to add workarounds by rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, position + offset, lod).

promotePackedFormatsTo8BitPerChannel (OpenGL workarounds) anglebug:5469: Disabled: IsApple() && hasAMD
Packed color formats are buggy on Macs with AMD GPUs

queryCounterBitsGeneratesErrors (OpenGL workarounds) anglebug:3027: Disabled: IsNexus5X(vendor, device)
Drivers generate errors when querying the number of bits in timer queries

readPixelsUsingImplementationColorReadFormatForNorm16 (OpenGL workarounds) anglebug:4214: Disabled: !isIntel && functions->standard == STANDARD_GL_ES && functions->isAtLeastGLES(gl::Version(3, 1)) && functions->hasGLESExtension("GL_EXT_texture_norm16")
Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from EXT_texture_norm16 correctly

reapplyUBOBindingsAfterUsingBinaryProgram (OpenGL workarounds) anglebug:1637: Disabled: isAMD || IsAndroid()
Some drivers forget about UBO bindings when using program binaries

regenerateStructNames (OpenGL workarounds) 403957: Disabled: IsApple()
All Mac drivers do not handle struct scopes correctly. This workaround overwrites a structname with a unique prefix.

removeDynamicIndexingOfSwizzledVector (OpenGL workarounds) 709351: Disabled: IsApple() || IsAndroid() || IsWindows()
Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.

removeInvariantAndCentroidForESSL3 (OpenGL workarounds): Enabled: functions->isAtMostGL(gl::Version(4, 1)) || (functions->standard == STANDARD_GL_DESKTOP && isAMD)
Fix spec difference between GLSL 4.1 or lower and ESSL3

resetTexImage2DBaseLevel (OpenGL workarounds) 705865: Disabled: IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4)
Reset texture base level before calling glTexImage2D to work around pixel comparison failure.

rewriteFloatUnaryMinusOperator (OpenGL workarounds) 308366: Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 0)
Using '-<float>' will get wrong answer

rewriteRepeatedAssignToSwizzled (OpenGL workarounds): Disabled: isNvidia
Repeated assignment to swizzled values inside a GLSL user-defined function have incorrect results

rewriteRowMajorMatrices (OpenGL workarounds) anglebug:2273: Disabled: false
Rewrite row major matrices in shaders as column major as a driver bug workaround

sanitizeAMDGPURendererString (OpenGL workarounds) 1181193: Disabled: IsLinux() && hasAMD
Strip precise kernel and DRM version information from amdgpu renderer strings.

setPrimitiveRestartFixedIndexForDrawArrays (OpenGL workarounds) anglebug:3997: Disabled: features->emulatePrimitiveRestartFixedIndex.enabled && IsApple() && isIntel
Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart index is within the number of primitives being drawn.

setZeroLevelBeforeGenerateMipmap (OpenGL workarounds): Disabled: IsApple()
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers.

shiftInstancedArrayDataWithOffset (OpenGL workarounds) 1144207: Disabled: IsApple() && IsIntel(vendor) && !IsHaswell(device)
glDrawArraysInstanced is buggy on certain new Mac Intel GPUs

supportsFragmentShaderInterlockARB (OpenGL features) anglebug:7279: Disabled: functions->isAtLeastGL(gl::Version(4, 5)) && functions->hasGLExtension("GL_ARB_fragment_shader_interlock")
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")
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")
GL context supports GL_INTEL_fragment_shader_ordering extension

syncVertexArraysToDefault (OpenGL workarounds) anglebug:5577: Disabled: !nativegl::SupportsVertexArrayObjects(functions)
Only use the default VAO because of missing support or driver bugs

unbindFBOBeforeSwitchingContext (OpenGL workarounds) 1181193: Disabled: IsPowerVR(vendor)
Imagination GL drivers are buggy with context switching.

unfoldShortCircuits (OpenGL workarounds) anglebug:482: Disabled: IsApple()
Mac incorrectly executes both sides of && and || expressions when they should short-circuit.

unpackLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) anglebug:1512: Disabled: IsApple() || isNvidia
When uploading textures from an unpack buffer, some drivers count an extra row padding

unpackOverlappingRowsSeparatelyUnpackBuffer (OpenGL workarounds): Disabled: isNvidia
In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row

unsizedSRGBReadPixelsDoesntTransform (OpenGL workarounds) 550292: Disabled: IsAndroid() && isQualcomm
Drivers returning raw sRGB values instead of linearized values when calling glReadPixels on unsized sRGB texture formats

uploadTextureDataInChunks (OpenGL workarounds) 1181068: Disabled: IsApple()
Upload texture data in <120kb chunks to work around Mac driver hangs and crashes.

useUnusedBlocksWithStandardOrSharedLayout (OpenGL workarounds): Disabled: (IsApple() && functions->standard == STANDARD_GL_DESKTOP) || (IsLinux() && isAMD)
Unused std140 or shared uniform blocks will be treated as inactive

vertexIDDoesNotIncludeBaseVertex (OpenGL workarounds): Disabled: IsApple() && isAMD
gl_VertexID in GLSL vertex shader doesn't include base vertex value

DAWN Info

 

<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

depth-clip-control

depth32float-stencil8

indirect-first-instance

dawn-internal-usages

dawn-native

Version Information

Data exported

2022-12-09T12:20:10.514Z

Chrome version

Chrome/107.0.5304.87

Operating system

Linux 6.0.7-2-MANJARO-ARM

Software rendering list URL

https://chromium.googlesource.com/chromium/src/+/f59ffb32abf8c01e9aa298400314bfdf0221b02f/gpu/config/software_rendering_list.json

Driver bug list URL

https://chromium.googlesource.com/chromium/src/+/f59ffb32abf8c01e9aa298400314bfdf0221b02f/gpu/config/gpu_driver_bug_list.json

ANGLE commit id

unknown hash

2D graphics backend

Skia/107 3a8c9bc2f275732b2fd1a566becf421e62fe1f46

Command Line

/usr/lib/chromium/chromium --profile-directory=Default --app-id=agimnkijcaahngcdmfeangaknmldooml --enable-crashpad --flag-switches-begin --enable-gpu-rasterization --enable-features=CanvasOopRasterization,Vp9kSVCHWDecoding,Vulkan --flag-switches-end

Driver Information

Initialization time

763

In-process GPU

false

Passthrough Command Decoder

true

Sandboxed

true

GPU0

VENDOR= 0x0000 [Google Inc. (Panfrost)], DEVICE=0x0000 [ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 22.2.3)], DRIVER_VENDOR=Mesa, DRIVER_VERSION=22.2.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

Machine model version

GL_VENDOR

Google Inc. (Panfrost)

GL_RENDERER

ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 22.2.3)

GL_VERSION

OpenGL ES 2.0.0 (ANGLE 2.1.0 git hash: unknown hash)

GL_EXTENSIONS

GL_AMD_performance_monitor 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_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_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_draw_buffers 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_robustness GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_texture_compression_bptc 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_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture 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 GL_WEBGL_video_texture

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

Google Inc. (Panfrost)

Window system binding version

1.5 (ANGLE 2.1.0 git hash: unknown hash)

Window system binding extensions

EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_ANGLE_sync_control_rate EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_create_context_backwards_compatible EGL_KHR_create_context_no_error EGL_NOK_texture_from_pixmap EGL_KHR_reusable_sync

XDG_CURRENT_DESKTOP

GNOME

XDG_SESSION_TYPE

wayland

GDMSESSION

gnome

Ozone platform

x11

Direct rendering version

unknown

Reset notification strategy

0x8261

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, P010: not supported

Compositor Information

Tile Update Mode

One-copy

Partial Raster

Enabled

GpuMemoryBuffers Status

R_8

Software only

R_16

Software only

RG_88

Software only

RG_1616

Software only

BGR_565

Software only

RGBA_4444

Software only

RGBX_8888

Software only

RGBA_8888

Software only

BGRX_8888

Software only

BGRA_1010102

Software only

RGBA_1010102

Software only

BGRA_8888

Software only

RGBA_F16

Software only

YVU_420

Software only

YUV_420_BIPLANAR

Software only

P010

Software only

Display(s) Information

Info

Display[33] bounds=[0,0 1920x1080], workarea=[0,29 1920x1051], scale=1, rotation=0, panel_rotation=0 external.

Color space (all)

{primaries:BT709, transfer:SRGB, matrix:RGB, range:FULL}

Buffer format (all)

BGRA_8888

Color volume

{name:'srgb', r:[0.6400, 0.3300], g:[0.3000, 0.6000], b:[0.1500, 0.3300], w:[0.3127, 0.3290]}

SDR white level in nits

203

HDR relative maximum luminance

1

Bits per color component

8

Bits per pixel

24

Refresh Rate in Hz

59

Video Acceleration Information

Decoding

Encoding

Vulkan Information

Device Performance Information

Log Messages

[1842:1842:1209/091657.140448:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 1 times!

[1842:1842:1209/091657.157546:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 2 times!

[1842:1842:1209/091703.824110:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 3 times!


Driver Section:

Quote

Driver Information

Initialization time

763

In-process GPU

false

Passthrough Command Decoder

true

Sandboxed

true

GPU0

VENDOR= 0x0000 [Google Inc. (Panfrost)], DEVICE=0x0000 [ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 22.2.3)], DRIVER_VENDOR=Mesa, DRIVER_VERSION=22.2.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

Machine model version

GL_VENDOR

Google Inc. (Panfrost)

GL_RENDERER

ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 22.2.3)

GL_VERSION

OpenGL ES 2.0.0 (ANGLE 2.1.0 git hash: unknown hash)


 

Edited by hotnikq
Posted
54 minutes ago, hotnikq said:

i see Mesa drivers on debian, but is it enabled by default?


If you want acceleration within Chromium, you need to switch to Wayland. It doesn't work under X.

Posted (edited)
23 minutes ago, Igor said:

If you want acceleration within Chromium, you need to switch to Wayland. It doesn't work under X.


Debian Wayland Desktop to Mali SBC's are hard to find, people always compile Xfce,
but a Big gnome with gpu acceleration is always fast than a Tiny Xfce on CPU.
i see no advantage on x11 desktop for Mali devices since GTK can import legacy x11.

i'm downloading Armbian Gnome with Kernel 6.0.y, will repport things here.
 

Edited by hotnikq
Posted
3 minutes ago, hotnikq said:

but the aceleration isn't there by default.


We don't have enough of people to tweak desktops well and I am by no mean an expert in this area. I am more interested into low level. KDE is maintained by nobody / vanilla install ... I am trying to address XFCE, Gnome, Cinnamon, while for more (in fact already this is out of possible) ... https://docs.armbian.com/Process_Contribute/

 

I am just playing with Rock 5 at this very moment, running Gnome (Jammy), kernel 5.10.y ... Chromium under Wayland is accelerated, under X, not. Not sure if we want to enable Wayland by default as its not very stable. Arch / Manjaro don't care about stability at all.

Posted




Fom Armbian Gnome Kernel 6.0.10

Quote

Linux rock-3a 6.0.10-rk35xx #22.11.1 SMP PREEMPT Wed Nov 30 11:08:41 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

 

HW acceleration is working!
Just Swith From Ubuntu X11 to Ubuntu Wayland.
But, video acceleration, i think it`s VP9 on browser dont work.


Screenshot-from-2022-12-09-11-59-24.png

chrome://gpu/

Quote

Graphics Feature Status

Canvas: Hardware accelerated

Canvas out-of-process rasterization: Enabled

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: Software only. Hardware acceleration disabled

Vulkan: Disabled

WebGL: Hardware accelerated

WebGL2: Hardware accelerated

WebGPU: Disabled

Driver Bug Workarounds

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

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, 349137
Applied Workarounds: clear_uniforms_before_first_program_use

Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing

Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces

Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
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

Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost

Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y)

ANGLE Features

allowCompressedFormats (Frontend workarounds): Enabled: true
Allow compressed formats

cacheCompiledShader (Frontend features) anglebug:7036: Disabled
Enable to cache compiled shaders

disableAnisotropicFiltering (Frontend workarounds): Disabled
Disable support for anisotropic filtering

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

RGBA4IsNotSupportedForColorRendering (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isIntel
GL_RGBA4 is not color renderable

RGBDXT1TexturesSampleZeroAlpha (OpenGL workarounds) anglebug:3729: Disabled: IsApple()
Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.

addAndTrueToLoopCondition (OpenGL workarounds): Disabled: IsApple() && isIntel
Calculation of loop conditions in for and while loop has bug

adjustSrcDstRegionForBlitFramebuffer (OpenGL workarounds) 830046: Enabled: IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia) || (IsApple() && functions->standard == STANDARD_GL_ES)
Many platforms have issues with blitFramebuffer when the parameters are large.

allowAstcFormats (OpenGL workarounds): Disabled: !isMesa || isIntel && (Is9thGenIntel(device) || IsGeminiLake(device) || IsCoffeeLake(device) || Is11thGenIntel(device) || Is12thGenIntel(device))
Enable ASTC on desktop OpenGL

allowClearForRobustResourceInit (OpenGL workarounds) 848952: Disabled: IsApple()
Using glClear for robust resource initialization is buggy on some drivers and leads to texture corruption. Default to data uploads except on MacOS where it is very slow.

allowETCFormats (OpenGL workarounds): Disabled: isIntel && !IsSandyBridge(device) && !IsIvyBridge(device) && !IsHaswell(device)
Enable ETC2/EAC on desktop OpenGL

alwaysCallUseProgramAfterLink (OpenGL workarounds) 110263: Enabled: true
Always call useProgram after a successful link to avoid a driver bug

alwaysUnbindFramebufferTexture2D (OpenGL workarounds) anglebug:5536: Disabled: isNvidia && (IsWindows() || IsLinux())
Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug.

avoid1BitAlphaTextureFormats (OpenGL workarounds): Disabled: functions->standard == STANDARD_GL_DESKTOP && isAMD
Issue with 1-bit alpha framebuffer formats

bindTransformFeedbackBufferBeforeBindBufferRange (OpenGL workarounds) anglebug:5140: Disabled: IsApple()
Bind transform feedback buffers to the generic binding point before calling glBindBufferBase or glBindBufferRange.

clampArrayAccess (OpenGL workarounds) anglebug:2978: Enabled: IsAndroid() || isAMD || !functions->hasExtension("GL_KHR_robust_buffer_access_behavior")
Clamp uniform array access to avoid reading invalid memory.

clampFragDepth (OpenGL workarounds): Disabled: isNvidia
gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer

clampMscRate (OpenGL workarounds) 1042393: 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: Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6)
Clears when the clear color is all zeros or ones do not work.

clipSrcRegionForBlitFramebuffer (OpenGL workarounds) 830046: Disabled: IsApple() || (IsLinux() && isAMD)
Issues with blitFramebuffer when the parameters don't match the framebuffer size.

decodeEncodeSRGBForGenerateMipmap (OpenGL workarounds) anglebug:4646: Disabled: IsApple()
Decode and encode before generateMipmap for srgb format textures.

disableBlendFuncExtended (OpenGL workarounds) anglebug:1085: Disabled: isAMD || isIntel
ARB_blend_func_extended does not pass the tests

disableDrawBuffersIndexed (OpenGL workarounds): Disabled: IsWindows() && isAMD
Disable OES_draw_buffers_indexed extension.

disableGPUSwitchingSupport (OpenGL workarounds) 1091824: Disabled: isDualGPUMacWithNVIDIA
Disable GPU switching support (use only the low-power GPU) on older MacBook Pros.

disableMultisampledRenderToTexture (OpenGL workarounds) anglebug:2894: Disabled: isAdreno4xxOnAndroidLessThan51 || isAdreno4xxOnAndroid70 || isAdreno5xxOnAndroidLessThan70 || isAdreno5xxOnAndroid71 || isLinuxVivante
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): Disabled: isApple
Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D.

emulateCopyTexImage2DFromRenderbuffers (OpenGL workarounds) anglebug:4674: Disabled: IsApple() && functions->standard == STANDARD_GL_ES && !(isAMD && IsWindows())
CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers.

emulateImmutableCompressedTexture3D (OpenGL workarounds) 1060012: Disabled: isQualcomm
Use non-immutable texture allocation to work around a driver bug.

emulateIsnanFloat (OpenGL workarounds) 650547: Disabled: isIntel && IsApple() && IsSkylake(device) && GetMacOSVersion() < OSVersion(10, 13, 2)
Using isnan() on highp float will get wrong answer

emulateMaxVertexAttribStride (OpenGL workarounds) anglebug:1936: Disabled: IsLinux() && functions->standard == STANDARD_GL_DESKTOP && isAMD
Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried

emulatePackSkipRowsAndPackSkipPixels (OpenGL workarounds) anglebug:4849: Disabled: IsApple()
GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver.

emulatePrimitiveRestartFixedIndex (OpenGL workarounds) anglebug:3997: 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: Disabled: IsApple() || isNvidia
When uploading textures from an pack buffer, some drivers count an extra row padding

packOverlappingRowsSeparatelyPackBuffer (OpenGL workarounds): Disabled: isNvidia
In the case of packing to a pixel pack buffer, pack overlapping rows row by row

passHighpToPackUnormSnormBuiltins (OpenGL workarounds) anglebug:7527: Disabled: isQualcomm
packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4.

preAddTexelFetchOffsets (OpenGL workarounds) 642605: Disabled: IsApple() && isIntel
Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid even if the sum of position and offset is in range, so we need to add workarounds by rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, position + offset, lod).

promotePackedFormatsTo8BitPerChannel (OpenGL workarounds) anglebug:5469: Disabled: IsApple() && hasAMD
Packed color formats are buggy on Macs with AMD GPUs

queryCounterBitsGeneratesErrors (OpenGL workarounds) anglebug:3027: Disabled: IsNexus5X(vendor, device)
Drivers generate errors when querying the number of bits in timer queries

readPixelsUsingImplementationColorReadFormatForNorm16 (OpenGL workarounds) anglebug:4214: Disabled: !isIntel && functions->standard == STANDARD_GL_ES && functions->isAtLeastGLES(gl::Version(3, 1)) && functions->hasGLESExtension("GL_EXT_texture_norm16")
Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from EXT_texture_norm16 correctly

reapplyUBOBindingsAfterUsingBinaryProgram (OpenGL workarounds) anglebug:1637: Disabled: isAMD || IsAndroid()
Some drivers forget about UBO bindings when using program binaries

regenerateStructNames (OpenGL workarounds) 403957: Disabled: IsApple()
All Mac drivers do not handle struct scopes correctly. This workaround overwrites a structname with a unique prefix.

removeDynamicIndexingOfSwizzledVector (OpenGL workarounds) 709351: Disabled: IsApple() || IsAndroid() || IsWindows()
Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.

removeInvariantAndCentroidForESSL3 (OpenGL workarounds): Enabled: functions->isAtMostGL(gl::Version(4, 1)) || (functions->standard == STANDARD_GL_DESKTOP && isAMD)
Fix spec difference between GLSL 4.1 or lower and ESSL3

resetTexImage2DBaseLevel (OpenGL workarounds) 705865: Disabled: IsApple() && isIntel && GetMacOSVersion() >= OSVersion(10, 12, 4)
Reset texture base level before calling glTexImage2D to work around pixel comparison failure.

rewriteFloatUnaryMinusOperator (OpenGL workarounds) 308366: Disabled: IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 0)
Using '-<float>' will get wrong answer

rewriteRepeatedAssignToSwizzled (OpenGL workarounds): Disabled: isNvidia
Repeated assignment to swizzled values inside a GLSL user-defined function have incorrect results

rewriteRowMajorMatrices (OpenGL workarounds) anglebug:2273: Disabled: false
Rewrite row major matrices in shaders as column major as a driver bug workaround

sanitizeAMDGPURendererString (OpenGL workarounds) 1181193: Disabled: IsLinux() && hasAMD
Strip precise kernel and DRM version information from amdgpu renderer strings.

setPrimitiveRestartFixedIndexForDrawArrays (OpenGL workarounds) anglebug:3997: Disabled: features->emulatePrimitiveRestartFixedIndex.enabled && IsApple() && isIntel
Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart index is within the number of primitives being drawn.

setZeroLevelBeforeGenerateMipmap (OpenGL workarounds): Disabled: IsApple()
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers.

shiftInstancedArrayDataWithOffset (OpenGL workarounds) 1144207: Disabled: IsApple() && IsIntel(vendor) && !IsHaswell(device)
glDrawArraysInstanced is buggy on certain new Mac Intel GPUs

supportsFragmentShaderInterlockARB (OpenGL features) anglebug:7279: Disabled: functions->isAtLeastGL(gl::Version(4, 5)) && functions->hasGLExtension("GL_ARB_fragment_shader_interlock")
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")
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")
GL context supports GL_INTEL_fragment_shader_ordering extension

syncVertexArraysToDefault (OpenGL workarounds) anglebug:5577: Disabled: !nativegl::SupportsVertexArrayObjects(functions)
Only use the default VAO because of missing support or driver bugs

unbindFBOBeforeSwitchingContext (OpenGL workarounds) 1181193: Disabled: IsPowerVR(vendor)
Imagination GL drivers are buggy with context switching.

unfoldShortCircuits (OpenGL workarounds) anglebug:482: Disabled: IsApple()
Mac incorrectly executes both sides of && and || expressions when they should short-circuit.

unpackLastRowSeparatelyForPaddingInclusion (OpenGL workarounds) anglebug:1512: Disabled: IsApple() || isNvidia
When uploading textures from an unpack buffer, some drivers count an extra row padding

unpackOverlappingRowsSeparatelyUnpackBuffer (OpenGL workarounds): Disabled: isNvidia
In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row

unsizedSRGBReadPixelsDoesntTransform (OpenGL workarounds) 550292: Disabled: IsAndroid() && isQualcomm
Drivers returning raw sRGB values instead of linearized values when calling glReadPixels on unsized sRGB texture formats

uploadTextureDataInChunks (OpenGL workarounds) 1181068: Disabled: IsApple()
Upload texture data in <120kb chunks to work around Mac driver hangs and crashes.

useUnusedBlocksWithStandardOrSharedLayout (OpenGL workarounds): Disabled: (IsApple() && functions->standard == STANDARD_GL_DESKTOP) || (IsLinux() && isAMD)
Unused std140 or shared uniform blocks will be treated as inactive

vertexIDDoesNotIncludeBaseVertex (OpenGL workarounds): Disabled: IsApple() && isAMD
gl_VertexID in GLSL vertex shader doesn't include base vertex value

DAWN Info

 

<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

depth-clip-control

depth32float-stencil8

indirect-first-instance

dawn-internal-usages

dawn-native

Version Information

Data exported

2022-12-09T14:51:51.667Z

Chrome version

Chrome/107.0.5304.62

Operating system

Linux 6.0.10-rk35xx

Software rendering list URL

https://chromium.googlesource.com/chromium/src/+/1eec40d3a5764881c92085aaee66d25075c159aa/gpu/config/software_rendering_list.json

Driver bug list URL

https://chromium.googlesource.com/chromium/src/+/1eec40d3a5764881c92085aaee66d25075c159aa/gpu/config/gpu_driver_bug_list.json

ANGLE commit id

unknown hash

2D graphics backend

Skia/107 3a8c9bc2f275732b2fd1a566becf421e62fe1f46

Command Line

/usr/lib/chromium-browser/chromium-browser --enable-pinch --enable-crashpad --flag-switches-begin --flag-switches-end --desktop-startup-id=9c0d8cfc-9c45-468c-92d6-e9d052653f9d

Driver Information

Initialization time

981

In-process GPU

false

Passthrough Command Decoder

true

Sandboxed

false

GPU0

VENDOR= 0x0000 [Google Inc. (Panfrost)], DEVICE=0x0000 [ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 23.0.0-devel (git-3507cdc 2022-11-29 jammy-oibaf-ppa))], DRIVER_VENDOR=Mesa, DRIVER_VERSION=23.0.0 *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

Machine model version

GL_VENDOR

Google Inc. (Panfrost)

GL_RENDERER

ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 23.0.0-devel (git-3507cdc 2022-11-29 jammy-oibaf-ppa))

GL_VERSION

OpenGL ES 2.0.0 (ANGLE 2.1.0 git hash: unknown hash)

GL_EXTENSIONS

GL_AMD_performance_monitor 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_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_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_draw_buffers 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_robustness GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_texture_compression_bptc 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_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary 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 GL_WEBGL_video_texture

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

Google Inc. (Panfrost)

Window system binding version

1.5 (ANGLE 2.1.0 git hash: unknown hash)

Window system binding extensions

EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_ANGLE_sync_control_rate EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_create_context_backwards_compatible EGL_KHR_create_context_no_error EGL_NOK_texture_from_pixmap EGL_KHR_reusable_sync

XDG_CURRENT_DESKTOP

ubuntu:GNOME

XDG_SESSION_TYPE

wayland

GDMSESSION

ubuntu-wayland

Ozone platform

x11

Direct rendering version

unknown

Reset notification strategy

0x8261

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, P010: not supported

Compositor Information

Tile Update Mode

One-copy

Partial Raster

Enabled

GpuMemoryBuffers Status

R_8

Software only

R_16

Software only

RG_88

Software only

RG_1616

Software only

BGR_565

Software only

RGBA_4444

Software only

RGBX_8888

Software only

RGBA_8888

Software only

BGRX_8888

Software only

BGRA_1010102

Software only

RGBA_1010102

Software only

BGRA_8888

Software only

RGBA_F16

Software only

YVU_420

Software only

YUV_420_BIPLANAR

Software only

P010

Software only

Display(s) Information

Info

Display[33] bounds=[0,0 1920x1080], workarea=[74,27 1846x1053], scale=1, rotation=0, panel_rotation=0 external.

Color space (all)

{primaries:BT709, transfer:SRGB, matrix:RGB, range:FULL}

Buffer format (all)

BGRA_8888

Color volume

{name:'srgb', r:[0.6400, 0.3300], g:[0.3000, 0.6000], b:[0.1500, 0.3300], w:[0.3127, 0.3290]}

SDR white level in nits

203

HDR relative maximum luminance

1

Bits per color component

8

Bits per pixel

24

Refresh Rate in Hz

59

Video Acceleration Information

Decoding

Encoding

Vulkan Information

Device Performance Information

Log Messages

[5300:5300:1209/115038.542084:ERROR:angle_platform_impl.cc(43)] : RendererVk.cpp:144 (VerifyExtensionsPresent): Extension not supported: VK_KHR_surface

[5300:5300:1209/115038.542581:ERROR:angle_platform_impl.cc(43)] : RendererVk.cpp:144 (VerifyExtensionsPresent): Extension not supported: VK_KHR_xcb_surface

[5300:5300:1209/115038.547887:ERROR:angle_platform_impl.cc(43)] : Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-7): A requested extension is not supported, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1562.

[5300:5300:1209/115038.548343:ERROR:gl_display.cc(508)] : EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-7): A requested extension is not supported, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1562.

[5300:5300:1209/115038.548601:ERROR:gl_display.cc(920)] : eglInitialize Vulkan failed with error EGL_NOT_INITIALIZED, trying next display type

[5300:5300:1209/115039.227079:ERROR:gl_angle_util_vulkan.cc(189)] : Failed to retrieve vkGetInstanceProcAddr

[5300:5300:1209/115039.227420:ERROR:vulkan_instance.cc(91)] : Failed to get vkGetInstanceProcAddr pointer from ANGLE.

[5300:5300:1209/115039.235472:WARNING:sandbox_linux.cc(380)] : InitializeSandbox() called with multiple threads in process gpu-process.

[5300:5300:1209/115039.571255:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.571795:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.572730:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.573206:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.573889:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.574361:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.574796:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.575505:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.581844:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.582342:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.584150:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.584631:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.585294:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.586653:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.588057:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115039.588582:ERROR:gbm_wrapper.cc(293)] : Failed to export buffer to dma_buf: No such file or directory (2)

[5300:5300:1209/115103.935726:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 1 times!

[5300:5300:1209/115103.948678:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 2 times!

[5300:5300:1209/115108.105954:ERROR:gl_surface_presentation_helper.cc(260)] : GetVSyncParametersIfAvailable() failed for 3 times!

 

Driver Section from Chrome

Quote

Driver Information

Initialization time

981

In-process GPU

false

Passthrough Command Decoder

true

Sandboxed

false

GPU0

VENDOR= 0x0000 [Google Inc. (Panfrost)], DEVICE=0x0000 [ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 23.0.0-devel (git-3507cdc 2022-11-29 jammy-oibaf-ppa))], DRIVER_VENDOR=Mesa, DRIVER_VERSION=23.0.0 *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

Machine model version

GL_VENDOR

Google Inc. (Panfrost)

GL_RENDERER

ANGLE (Panfrost, Mali-G52 r1 (Panfrost), OpenGL 3.1 Mesa 23.0.0-devel (git-3507cdc 2022-11-29 jammy-oibaf-ppa))

 

 

Posted (edited)


a universal truth:

1 hour ago, Igor said:

Arch / Manjaro don't care about stability at all.


 

you are sharing the same idea:

1 hour ago, Igor said:

I am just playing with Rock 5 at this very moment


Mali Gpu + mesa Drivers, can you play a youtube video on chromium without CPU?

my only question now,
this Video Player acceleration on ARK (manjaro) is a patch for Chromium or it`s a patch for Driver?

Edited by hotnikq
Posted
6 minutes ago, hotnikq said:

Mali Gpu + mesa Drivers, can you play a youtube video on chromium without CPU?


No.

Posted (edited)
51 minutes ago, hotnikq said:

my only question now,
this Video Player acceleration on ARK (manjaro) is a patch for Chromium or it`s a patch for Driver?


The only difference i can find is 
Mesa 22.2.3 (manjaro)
Rasterization: Hardware accelerated on all pages

Mesa 23.0.0-devel (armbian)
Rasterization: Hardware accelerated

Chromium pick up the gpu/vpu.
But Not for Video Decode.
 

Edited by hotnikq
Posted (edited)
1 hour ago, balbes150 said:

The Gnome interface is the ugliest and moronic craft.  😎

The more Gnome progresses, the worse it gets.
when the pininfarina accelerator is not working we have to accelerate (Barely) with Mitsuoka

  

2 hours ago, hotnikq said:

Chromium pick up the gpu/vpu.
But Not for Video Decode.



Nothing we can do here,
I'm going to compile a bunch of chromium and see which one will speed up VP9 and mesa drivers.

 

Edited by hotnikq
Posted
3 hours ago, hotnikq said:

Nothing we can do here

For out-of-the-box mainline kernel support you need at least 6.1.0-rc1 because that's where all currently available code for the rk3568 SOC has landed. GPU support has been available for a long time, see glmark2-wayland-odroid-m1.log for reference. And Mali-G52 is official conformant for OpenGL ES 3.1.

VPU support is only available for the hantro IP. So hardware-accelerated video decoding of H.264 and VP8 works up to 1080p. See fluster-run-odroid-m1.log for reference. The available drivers are in quite good shape, see v4l2-compliance.log for reference. The support for the rkvdec2 IP is not yet available, so no 4K resolution and no VP9 and HEVC hardware decoding for now.
Hardware encoding is only available for JPEG in poor quality. But missing mainline encoder support applies almost for all SOCs.
If you need 4K resolution, VP9 or HEVC codecs, you have to currently rely on the vendor's legacy kernel with proprietary interfaces.

Posted
19 hours ago, usual user said:

If you need 4K resolution, VP9 or HEVC codecs, you have to currently rely on the vendor's legacy kernel with proprietary interfaces.


I'm sad that you're right about everything

Ark Manjaro Just Play 1080p VP9 with 25% cpu usage
4k 60hz isn't an option not even for display draw

Posted (edited)
On 12/9/2022 at 12:13 PM, hotnikq said:

this Video Player acceleration on ARK (manjaro) is a patch for Chromium or it`s a patch for Driver?


it`s a Chromium Patch
Let`s Make it Standart! for Wayland Desktop DIstros!

For Chromium VIdeo Playback 1080P 60Fps RK3568 45% CPU usage

Enabled

Quote

WebRTC PipeWire support

When enabled the WebRTC will use the PipeWire multimedia server for capturing the desktop content on the Wayland display server. – Linux

#enable-webrtc-pipewire-capturer


Wayland

Quote

Preferred Ozone platform

Selects the preferred platform backend used on Linux. The default one is "X11". "Auto" selects Wayland if possible, X11 otherwise. – Linux

#ozone-platform-hint




 

Edited by hotnikq

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines