You are not logged in.

#1 2023-05-13 13:26:59

0BADC0DE
Member
From: Regnum Utriusque Siciliae
Registered: 2018-02-21
Posts: 342

How to enable "Direct Rendering Display Compositor" in chromium?

My current system is:

Kernel Version : 6.3.1.zen2-1
Plasma Version : 5.27.5-2
KDE Version : 23.04.1-1
Frameworks Version : 5.105.0-1
Qt5 Version : 5.15.9+kde+r9-1
Wayland Version : 1.22.0-1
XOrg/Wayland Version : 23.1.1-1
Mesa Version : 23.0.3-1
LibVA Version : 2.18.0-1
VDPAU Version : 1.5-1

My browsers are:

chromium: 113.0.5672.92 (Official Build, chromium) Arch Linux (64-bit)
vivaldi: 6.0.2979.18 (Stable channel) stable (64-bit) 

I managed to enable most of the hw acceleration but there seems to be no way to enable "Direct Rendering Display Compositor" (aka dr-dc).
The flag should be the one labelled as "Enables Display Compositor to use a new gpu thread." with address 'flags/#enable-drdc'. No way.

I do know that all this doesn't mean hw acceleration is actually used.
Does it make any sense to keep trying or maybe this is a limitation due to my architecture (64bit Linux)?
Any hint?


Maybe Computers Will Never Become As Intelligent
As Humans. Surely They Won't Ever Become So Stupid.

Offline

#2 2023-07-11 16:59:40

guiodic
Member
Registered: 2018-02-22
Posts: 50

Re: How to enable "Direct Rendering Display Compositor" in chromium?

same problem

Offline

#3 2023-07-13 14:24:44

0BADC0DE
Member
From: Regnum Utriusque Siciliae
Registered: 2018-02-21
Posts: 342

Re: How to enable "Direct Rendering Display Compositor" in chromium?

It looks like none knows...
Anyway, chrome://flags/#enable-drdc keeps being  settable in Linux while useless .


Maybe Computers Will Never Become As Intelligent
As Humans. Surely They Won't Ever Become So Stupid.

Offline

#4 2023-08-15 13:54:48

memchr
Member
Registered: 2022-12-17
Posts: 3

Re: How to enable "Direct Rendering Display Compositor" in chromium?

You will enable no such thing, because it is Android only

content/browser/resources/gpu/info_view.ts

      'direct_rendering_display_compositor':
          'Direct Rendering Display Compositor',

content/browser/gpu/compositor_util.cc

    {"direct_rendering_display_compositor", gpu::kGpuFeatureStatusEnabled,
     !features::IsDrDcEnabled(), DisableInfo::NotProblem(), false},

gpu/config/gpu_finch_features.cc

bool IsDrDcEnabled() {
#if BUILDFLAG(IS_ANDROID)
  // Enabled on android P+.
  // Some other shenanigans
#else
  return false;
#endif
}

Offline

#5 2023-08-15 15:53:06

0BADC0DE
Member
From: Regnum Utriusque Siciliae
Registered: 2018-02-21
Posts: 342

Re: How to enable "Direct Rendering Display Compositor" in chromium?

Nice finding. This would then mean there is a bug because the feature is not excluded from toggable flags! A number of them are excluded for Linux...


Maybe Computers Will Never Become As Intelligent
As Humans. Surely They Won't Ever Become So Stupid.

Offline

#6 2023-08-15 16:18:52

memchr
Member
Registered: 2022-12-17
Posts: 3

Re: How to enable "Direct Rendering Display Compositor" in chromium?

Actually, Chromium source seems to have deliberately put features::kEnableDrDc outside the BUILDFLAG(IS_ANDROID) condition, and set its FeatureEntry::supported_platforms to kOsAll for some reason.

#if BUILDFLAG(IS_ANDROID)
    {"omnibox-2023-refresh-connection-security-indicators",
     flag_descriptions::kOmnibox2023RefreshConnectionSecurityIndicatorsName,
     flag_descriptions::
         kOmnibox2023RefreshConnectionSecurityIndicatorsDescription,
     kOsAndroid,
     FEATURE_VALUE_TYPE(omnibox::kUpdatedConnectionSecurityIndicators)},
#endif // BUILDFLAG(IS_ANDROID)

    {"enable-drdc", flag_descriptions::kEnableDrDcName,
     flag_descriptions::kEnableDrDcDescription, kOsAll,
     FEATURE_VALUE_TYPE(features::kEnableDrDc)},

    {"force-gpu-main-thread-to-normal-priority-drdc",
     flag_descriptions::kForceGpuMainThreadToNormalPriorityDrDcName,
     flag_descriptions::kForceGpuMainThreadToNormalPriorityDrDcDescription,
     kOsAll,
     FEATURE_VALUE_TYPE(features::kForceGpuMainThreadToNormalPriorityDrDc)},

#if BUILDFLAG(IS_ANDROID)
    {"enable-drdc-vulkan", flag_descriptions::kEnableDrDcVulkanName,
     flag_descriptions::kEnableDrDcDescription, kOsAndroid,
     FEATURE_VALUE_TYPE(features::kEnableDrDcVulkan)},
#endif

Last edited by memchr (2023-08-15 16:19:07)

Offline

#7 2023-08-15 17:03:02

0BADC0DE
Member
From: Regnum Utriusque Siciliae
Registered: 2018-02-21
Posts: 342

Re: How to enable "Direct Rendering Display Compositor" in chromium?

memchr wrote:

Actually, Chromium source seems to have deliberately put features::kEnableDrDc outside the BUILDFLAG(IS_ANDROID) condition, and set its FeatureEntry::supported_platforms to kOsAll for some reason.

#if BUILDFLAG(IS_ANDROID)
    {"omnibox-2023-refresh-connection-security-indicators",
     flag_descriptions::kOmnibox2023RefreshConnectionSecurityIndicatorsName,
     flag_descriptions::
         kOmnibox2023RefreshConnectionSecurityIndicatorsDescription,
     kOsAndroid,
     FEATURE_VALUE_TYPE(omnibox::kUpdatedConnectionSecurityIndicators)},
#endif // BUILDFLAG(IS_ANDROID)

    {"enable-drdc", flag_descriptions::kEnableDrDcName,
     flag_descriptions::kEnableDrDcDescription, kOsAll,
     FEATURE_VALUE_TYPE(features::kEnableDrDc)},

    {"force-gpu-main-thread-to-normal-priority-drdc",
     flag_descriptions::kForceGpuMainThreadToNormalPriorityDrDcName,
     flag_descriptions::kForceGpuMainThreadToNormalPriorityDrDcDescription,
     kOsAll,
     FEATURE_VALUE_TYPE(features::kForceGpuMainThreadToNormalPriorityDrDc)},

#if BUILDFLAG(IS_ANDROID)
    {"enable-drdc-vulkan", flag_descriptions::kEnableDrDcVulkanName,
     flag_descriptions::kEnableDrDcDescription, kOsAndroid,
     FEATURE_VALUE_TYPE(features::kEnableDrDcVulkan)},
#endif

The reason could be just a bug. If you can only set it up in Android, it cannot be shown for all other OSes...


Maybe Computers Will Never Become As Intelligent
As Humans. Surely They Won't Ever Become So Stupid.

Offline

Board footer

Powered by FluxBB