RobRich999 / Chromium_Clang

Chromium browser compiled with the Clang/LLVM compiler.
157 stars 10 forks source link

[avx/avx2] Video playback question #9

Closed fuu1 closed 4 years ago

fuu1 commented 4 years ago

Unlike in other chromium variants AVX/AVX2 versions seem to stop video playback while out of focus (audio playback remains).

Is this behavior intended? If yes is there a way to prevent that? I made a quick video to showcase what i mean.

Showcase Video: Video Playback

Its easy reproduce by using task view or task preview.

RobRich999 commented 4 years ago

I can not think of anything optimization related to cause the issue.

There used to be about:flags for background, focus, etc. of video, but most of them have been deprecated as the features were natively enabled over recent years.

It could be a long shot, but try changing this current flag to disabled:

chrome://flags/#enable-audio-focus-enforcement

Otherwise try disabling hardware acceleration as a test.

Of note you also can replicate the PiP feature with a Google-provided extension. I can verify it works for my current AVX2 build, at least for YouTube, as I just tested it.

https://github.com/RobRich999/Chromium_Clang/releases/tag/v82.0.4061.0-r741948-win64-avx2

fuu1 commented 4 years ago

A change in settings has no impact on the mentioned behavior.

This is on a Kaby Lake processor if this information is relevant.

RobRich999 commented 4 years ago

Curious, what happens if changing the graphics backend to D3D9? OpenGL?

chrome://flags/#use-angle

fuu1 commented 4 years ago

Changing graphics backend has no impact.

RobRich999 commented 4 years ago

Sadly, no idea here.

Ultimately, there is a not a substantial performance difference between my SSE2 and AVX builds, so I suggest opting for the SSE2 builds for now.

I try to keep those two builds relatively in sync when it comes to build options, optimization levels, etc. I just do not blanket enable AVX for all optimized source code on SSE2 builds. Of note, even when it comes to the SSE2 builds, specific components directly targeting AVX, AVX2, etc. can still use those SIMD instruction sets when processor support is detected.