Enables Display Compositor to use a new gpu thread.
When enabled, chrome uses 2 gpu threads instead of 1. Display compositor uses new dr-dc gpu thread and all other clients (raster, webgl, video) continues using the gpu main thread. – Mac, Windows, Linux, ChromeOS, Android, Fuchsia, Lacros
#enable-drdc
Then if you go to chrome://gpu
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
* Skia Graphite: Disabled
* Video Decode: Hardware accelerated
* Video Encode: Hardware accelerated
* Vulkan: Disabled
* WebGL: Hardware accelerated
* WebGL2: Unavailable
* WebGPU: Hardware accelerated
The Direct Rendering Display Compositor is still Disabled.
Backgrounds
chrome://flags settings
``` #disable-thorium-icons > Enabled #autoplay-policy > Document User Activation Required #ignore-gpu-blocklist > Enabled #enable-gpu-rasterization > Enabled #zero-copy-video-capture > Enabled #enable-zero-copy > Enabled #scrollable-tabstrip > Enabled - tabs shrink to a large width #zero-copy-tab-capture > Enabled #hardware-media-key-handling > Disabled #use-client-gmb-interface > Enabled #chrome-labs > Disabled #enable-drdc > Enabled #skia-graphite > Enabled #ui-enable-shared-image-cache-for-gpu > Enabled #use-gpu-scheduler-dfs > Enabled ```Problems
As the title says.
If you try to enable
chrome://flags/#enable-drdc
Then if you go to
chrome://gpu
The
Direct Rendering Display Compositor
is stillDisabled
.Some said in the link below that it's exclusive to android, but I don't really know. https://bbs.archlinux.org/viewtopic.php?id=285762
Additional info from chrome://gpu for my specific system
``` Driver Bug Workarounds ====================== * avoid_consecutive_keyframes_for_vp9 * disable_accelerated_av1_decode * disable_accelerated_vp8_decode * disable_accelerated_vp9_decode * disable_accelerated_vp9_encode * disable_d3d11 * disable_decode_swap_chain * disable_direct_composition * disable_direct_composition_sw_video_overlays * disable_dynamic_video_encode_framerate_update * disable_imagebitmap_from_video_using_gpu * disable_nv12_dynamic_textures * disable_vp_auto_hdr * disable_vp_super_resolution * enable_bgra8_overlays_with_yuv_overlay_support * enable_webgl_timer_query_extensions * exit_on_context_lost * max_msaa_sample_count_4 * msaa_is_slow * msaa_is_slow_2 * disabled_extension_GL_KHR_blend_equation_advanced * disabled_extension_GL_KHR_blend_equation_advanced_coherent * disabled_extension_GL_MESA_framebuffer_flip_y Problems Detected ================= * Some drivers are unable to reset the D3D device in the GPU process sandbox Applied Workarounds: exit_on_context_lost * Old Intel drivers cannot reliably support D3D11: (http://crbug.com/363721) Applied Workarounds: disable_d3d11 * On Intel GPUs MSAA performance is not acceptable for GPU rasterization: (http://crbug.com/527565), (http://crbug.com/1298585) Applied Workarounds: msaa_is_slow * Disable KHR_blend_equation_advanced until cc shaders are updated: (http://crbug.com/661715) Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent) * Accelerated VP9 decoding is hanging on some videos.: (http://crbug.com/654111) Applied Workarounds: disable_accelerated_vp9_decode * Expose WebGL's disjoint_timer_query extensions on platforms with site isolation: (http://crbug.com/808744), (http://crbug.com/870491) Applied Workarounds: enable_webgl_timer_query_extensions * Direct composition causes rendering issues on Intel SandyBridge and IvyBridge GPUs: (http://crbug.com/775898), (http://crbug.com/785648), (http://crbug.com/9245627) Applied Workarounds: disable_direct_composition * Dynamic texture map crashes on Intel drivers less than version 24: (http://crbug.com/890227) Applied Workarounds: disable_nv12_dynamic_textures * Disable GL_MESA_framebuffer_flip_y for desktop GL: (http://crbug.com/964010) Applied Workarounds: disable(GL_MESA_framebuffer_flip_y) * Disable using GPU backed resource for imageBitmap from video on d3d9: (http://crbug.com/1098445), (http://crbug.com/1105923) Applied Workarounds: disable_imagebitmap_from_video_using_gpu * Disable DecodeSwapChain for Intel Gen9 and older devices: (http://crbug.com/1107403) Applied Workarounds: disable_decode_swap_chain * Intel GPUs fail to report BGRA8 overlay support: (http://crbug.com/1119491) Applied Workarounds: enable_bgra8_overlays_with_yuv_overlay_support * 8x MSAA for WebGL contexts is slow on Win Intel: (http://crbug.com/1145793) Applied Workarounds: max_msaa_sample_count_4 * Disable software overlays for Intel GPUs. All Skylake+ devices support hw overlays, older devices peform poorly.: (http://crbug.com/1192748) Applied Workarounds: disable_direct_composition_sw_video_overlays * Windows hardware decoding doesn't support a set of legacy Intel GPUs: (http://crbug.com/822644), (http://crbug.com/1187900) Applied Workarounds: disable_accelerated_av1_decode, disable_accelerated_vp8_decode, disable_accelerated_vp9_decode * AVC/AV1 hardware encoder MFT output bitrate incorrect upon framerate update on Intel GPUs.: (http://crbug.com/1295815) Applied Workarounds: disable_dynamic_video_encode_framerate_update * Only enable video processor super resolution on Intel Gen10+ GPUs and NVIDIA GPUs with 530+ drivers: (http://crbug.com/1318380) Applied Workarounds: disable_vp_super_resolution * On pre-Ice Lake Intel GPUs MSAA performance is not acceptable for GPU rasterization: (http://crbug.com/527565), (http://crbug.com/1298585), (http://crbug.com/1341830) Applied Workarounds: msaa_is_slow_2 * Disable VP9 HW encode on Intel GPU with old drivers: (http://crbug.com/1433287) Applied Workarounds: disable_accelerated_vp9_encode * Disable VP9 HW encode on Intel GPUs preceding Ice Lake: (http://crbug.com/1217298), (http://crbug.com/1107331) Applied Workarounds: disable_accelerated_vp9_encode * Only enable video processor auto HDR on NVIDIA GPUs with 550.50+ driver: (http://crbug.com/1445741) Applied Workarounds: disable_vp_auto_hdr * Corruption when consecutive VP9 keyframes are requested from MFVEA on Intel.: (http://crbug.com/1473665) Applied Workarounds: avoid_consecutive_keyframes_for_vp9 ANGLE Features ============== * allowCompressedFormats (Frontend workarounds): Enabled condition: true Allow compressed formats * alwaysRunLinkSubJobsThreaded (Frontend features) (http://anglebug.com/8417): Disabled If true, sub tasks of the link job are always threaded, regardless of GL_KHR_parallel_shader_compile * cacheCompiledShader (Frontend features) (http://anglebug.com/7036): Disabled Enable to cache compiled shaders * compileJobIsThreadSafe (Frontend features) (http://anglebug.com/8297): Enabled condition: true If false, parts of the compile job cannot be parallelized * disableAnisotropicFiltering (Frontend workarounds): Disabled Disable support for anisotropic filtering * disableDrawBuffersIndexed (Frontend features) (http://anglebug.com/7724): Disabled Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed * disableProgramBinary (Frontend features) (http://anglebug.com/5007): Disabled Disable support for GL_OES_get_program_binary * disableProgramCaching (Frontend features) (http://anglebug.com/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) (http://anglebug.com/7760): Disabled Write shader source to temp directory * dumpTranslatedShaders (Frontend features) (http://anglebug.com/8280): Disabled Write translated shaders to temp directory * emulatePixelLocalStorage (Frontend features) (http://anglebug.com/7279): Enabled condition: true Emulate ANGLE_shader_pixel_local_storage using shader images * enableCaptureLimits (Frontend features) (http://anglebug.com/5750): Disabled Set the context limits like frame capturing was enabled * enableProgramBinaryForCapture (Frontend features) (http://anglebug.com/5658): Disabled Even if FrameCapture is enabled, enable GL_OES_get_program_binary * enableShaderSubstitution (Frontend workarounds) (http://anglebug.com/7761): Disabled Check the filesystem for shaders to use instead of those provided through glShaderSource * enableTranslatedShaderSubstitution (Frontend workarounds) (http://anglebug.com/8280): Disabled Check the filesystem for translated shaders to use instead of the shader translator's * forceDepthAttachmentInitOnClear (Frontend workarounds) (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 * forceMinimumMaxVertexAttributes (Frontend features): Disabled condition: false Force the minimum GL_MAX_VERTEX_ATTRIBS that the context's client version allows. * forceRobustResourceInit (Frontend features) (http://anglebug.com/6041): Disabled Force-enable robust resource init * linkJobIsThreadSafe (Frontend features) (http://anglebug.com/8297): Enabled condition: true If false, parts of the link job cannot be parallelized * loseContextOnOutOfMemory (Frontend workarounds): Enabled condition: 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 * uncurrentEglSurfaceUponSurfaceDestroy (Frontend workarounds) (https://issuetracker.google.com/292285899): Disabled Make egl surface uncurrent when calling eglDestroySurface(), if the surface is still bound by the context of current render thread * addMockTextureNoRenderTarget (D3D workarounds) (http://anglebug.com/2152): Disabled On some drivers when rendering with no render target, two bugs lead to incorrect behavior * allowClearForRobustResourceInit (D3D workarounds) (http://crbug.com/941620): Enabled condition: true Some drivers corrupt texture data when clearing for robust resource initialization. * allowES3OnFL100 (D3D workarounds): Disabled Allow ES3 on 10.0 devices * allowTranslateUniformBlockToStructuredBuffer (D3D workarounds) (http://anglebug.com/3682): Disabled There is a slow fxc compile performance issue with dynamic uniform indexing if translating a uniform block with a large array member to cbuffer. * borderColorSrgb (D3D workarounds): Disabled condition: IsNvidia(vendorID) Some drivers expect sRGB border color for sRGB texture formats * callClearTwice (D3D workarounds) (https://crbug.com/655534): Disabled Using clear() may not take effect * depthStencilBlitExtraCopy (D3D workarounds) (http://anglebug.com/1452): Disabled Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil * disableB5G6R5Support (D3D workarounds): Disabled Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data * disableRasterizerOrderViews (D3D workarounds) (http://anglebug.com/7279): Disabled Disable ROVs for testing * emulateIsnanFloat (D3D workarounds) (https://crbug.com/650547): Disabled Using isnan() on highp float will get wrong answer * emulateTinyStencilTextures (D3D workarounds): Disabled 1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly * enableTimestampQueries (D3D workarounds): Disabled Enable timestamp on GL_EXT_disjoint_timer_query extension * expandIntegerPowExpressions (D3D workarounds): Enabled condition: true The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions * flushAfterEndingTransformFeedback (D3D workarounds): Disabled Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions * forceAtomicValueResolution (D3D workarounds) (http://anglebug.com/3246): Disabled On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation * getDimensionsIgnoresBaseLevel (D3D workarounds): Disabled Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin * mrtPerfWorkaround (D3D workarounds): Enabled condition: true Some drivers have a bug where they ignore null render targets * preAddTexelFetchOffsets (D3D workarounds): Disabled HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range * rewriteUnaryMinusOperator (D3D workarounds): Disabled Evaluating unary minus operator on integer may get wrong answer in vertex shaders * selectViewInGeometryShader (D3D workarounds): Disabled The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension * setDataFasterThanImageUpload (D3D workarounds): Disabled condition: false Set data faster than image upload * skipVSConstantRegisterZero (D3D workarounds): Disabled In specific cases the driver doesn't handle constant register zero correctly * supportsNonConstantLoopIndexing (D3D workarounds): Disabled condition: false Whether the API supports non-constant loop indexing * useInstancedPointSpriteEmulation (D3D workarounds): Disabled condition: false Some D3D11 renderers do not support geometry shaders for pointsprite emulation * useSystemMemoryForConstantBuffers (D3D workarounds) (https://crbug.com/593024): Disabled Copying from staging storage to constant buffer storage does not work * zeroMaxLodWorkaround (D3D workarounds): Disabled Missing an option to disable mipmaps on a mipmapped texture Dawn Info =========P.S. --disable-gpu-driver-bug-workarounds doesn't work
``` Graphics Feature Status ======================= * Canvas: Hardware accelerated * Canvas out-of-process rasterization: Enabled * Direct Rendering Display Compositor: Disabled * Compositing: Software only. Hardware acceleration disabled * Multiple Raster Threads: Enabled * OpenGL: Enabled * Rasterization: Hardware accelerated on all pages * Raw Draw: Disabled * Skia Graphite: Hardware accelerated * Video Decode: Hardware accelerated * Video Encode: Hardware accelerated * Vulkan: Disabled * WebGL: Hardware accelerated but at reduced performance * WebGL2: Hardware accelerated but at reduced performance * WebGPU: Hardware accelerated but at reduced performance Problems Detected ================= * 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): Enabled condition: true Allow compressed formats * alwaysRunLinkSubJobsThreaded (Frontend features) (http://anglebug.com/8417): Disabled If true, sub tasks of the link job are always threaded, regardless of GL_KHR_parallel_shader_compile * cacheCompiledShader (Frontend features) (http://anglebug.com/7036): Disabled Enable to cache compiled shaders * compileJobIsThreadSafe (Frontend features) (http://anglebug.com/8297): Enabled condition: true If false, parts of the compile job cannot be parallelized * disableAnisotropicFiltering (Frontend workarounds): Disabled Disable support for anisotropic filtering * disableDrawBuffersIndexed (Frontend features) (http://anglebug.com/7724): Disabled Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed * disableProgramBinary (Frontend features) (http://anglebug.com/5007): Disabled Disable support for GL_OES_get_program_binary * disableProgramCaching (Frontend features) (http://anglebug.com/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) (http://anglebug.com/7760): Disabled Write shader source to temp directory * dumpTranslatedShaders (Frontend features) (http://anglebug.com/8280): Disabled Write translated shaders to temp directory * emulatePixelLocalStorage (Frontend features) (http://anglebug.com/7279): Enabled condition: true Emulate ANGLE_shader_pixel_local_storage using shader images * enableCaptureLimits (Frontend features) (http://anglebug.com/5750): Disabled Set the context limits like frame capturing was enabled * enableProgramBinaryForCapture (Frontend features) (http://anglebug.com/5658): Disabled Even if FrameCapture is enabled, enable GL_OES_get_program_binary * enableShaderSubstitution (Frontend workarounds) (http://anglebug.com/7761): Disabled Check the filesystem for shaders to use instead of those provided through glShaderSource * enableTranslatedShaderSubstitution (Frontend workarounds) (http://anglebug.com/8280): Disabled Check the filesystem for translated shaders to use instead of the shader translator's * forceDepthAttachmentInitOnClear (Frontend workarounds) (https://anglebug.com/7246): Disabled condition: isAMD 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 * forceMinimumMaxVertexAttributes (Frontend features): Disabled condition: false Force the minimum GL_MAX_VERTEX_ATTRIBS that the context's client version allows. * forceRobustResourceInit (Frontend features) (http://anglebug.com/6041): Disabled Force-enable robust resource init * linkJobIsThreadSafe (Frontend features) (http://anglebug.com/8297): Enabled condition: true If false, parts of the link job cannot be parallelized * loseContextOnOutOfMemory (Frontend workarounds): Enabled condition: 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 * uncurrentEglSurfaceUponSurfaceDestroy (Frontend workarounds) (https://issuetracker.google.com/292285899): Disabled Make egl surface uncurrent when calling eglDestroySurface(), if the surface is still bound by the context of current render thread * addMockTextureNoRenderTarget (D3D workarounds) (http://anglebug.com/2152): Disabled condition: isIntel && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164815) On some drivers when rendering with no render target, two bugs lead to incorrect behavior * allowClearForRobustResourceInit (D3D workarounds) (http://crbug.com/941620): Enabled condition: true Some drivers corrupt texture data when clearing for robust resource initialization. * allowES3OnFL100 (D3D workarounds): Disabled condition: false Allow ES3 on 10.0 devices * allowTranslateUniformBlockToStructuredBuffer (D3D workarounds) (http://anglebug.com/3682): Enabled condition: IsWindows10OrLater() There is a slow fxc compile performance issue with dynamic uniform indexing if translating a uniform block with a large array member to cbuffer. * borderColorSrgb (D3D workarounds): Disabled Some drivers expect sRGB border color for sRGB texture formats * callClearTwice (D3D workarounds) (https://crbug.com/655534): Disabled condition: isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164771) Using clear() may not take effect * depthStencilBlitExtraCopy (D3D workarounds) (http://anglebug.com/1452): Disabled Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil * disableB5G6R5Support (D3D workarounds): Disabled condition: (isIntel && capsVersion >= IntelDriverVersion(150000) && capsVersion < IntelDriverVersion(154539)) || isAMD Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data * disableRasterizerOrderViews (D3D workarounds) (http://anglebug.com/7279): Disabled Disable ROVs for testing * emulateIsnanFloat (D3D workarounds) (https://crbug.com/650547): Disabled condition: isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164542) Using isnan() on highp float will get wrong answer * emulateTinyStencilTextures (D3D workarounds): Disabled condition: isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1) 1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly * enableTimestampQueries (D3D workarounds): Disabled Enable timestamp on GL_EXT_disjoint_timer_query extension * expandIntegerPowExpressions (D3D workarounds): Enabled condition: true The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions * flushAfterEndingTransformFeedback (D3D workarounds): Disabled condition: isNvidia Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions * forceAtomicValueResolution (D3D workarounds) (http://anglebug.com/3246): Disabled condition: isNvidia On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation * getDimensionsIgnoresBaseLevel (D3D workarounds): Disabled condition: isNvidia Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin * mrtPerfWorkaround (D3D workarounds): Enabled condition: true Some drivers have a bug where they ignore null render targets * preAddTexelFetchOffsets (D3D workarounds): Enabled condition: isIntel HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range * rewriteUnaryMinusOperator (D3D workarounds): Disabled condition: isIntel && (isBroadwell || isHaswell) && capsVersion >= IntelDriverVersion(150000) && capsVersion < IntelDriverVersion(154624) Evaluating unary minus operator on integer may get wrong answer in vertex shaders * selectViewInGeometryShader (D3D workarounds): Enabled condition: !deviceCaps.supportsVpRtIndexWriteFromVertexShader The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension * setDataFasterThanImageUpload (D3D workarounds): Enabled condition: !(isIvyBridge || isBroadwell || isHaswell) Set data faster than image upload * skipVSConstantRegisterZero (D3D workarounds): Disabled condition: isNvidia In specific cases the driver doesn't handle constant register zero correctly * supportsNonConstantLoopIndexing (D3D workarounds): Enabled condition: !isFeatureLevel9_3 Whether the API supports non-constant loop indexing * useInstancedPointSpriteEmulation (D3D workarounds): Disabled condition: isFeatureLevel9_3 Some D3D11 renderers do not support geometry shaders for pointsprite emulation * useSystemMemoryForConstantBuffers (D3D workarounds) (https://crbug.com/593024): Enabled condition: isIntel Copying from staging storage to constant buffer storage does not work * zeroMaxLodWorkaround (D3D workarounds): Disabled condition: isFeatureLevel9_3 Missing an option to disable mipmaps on a mipmapped texture Dawn Info =========