New issue
Advanced search Search tips

Issue 754063 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocking:
issue 590342



Sign in to add a comment

Put opaque DirectComposition visual behind opaque portion of Chrome window.

Project Member Reported by jbau...@chromium.org, Aug 9 2017

Issue description

For most chrome windows (which aren't opaque) we didn't gain much from switching to DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL, because that just changed what used memory bandwidth.
Previously:
Chrome blit from its backbuffer to DWM's copy (1 read and write) and DWM drew from that to the screen (1 read and write).
Notably, even though the window contents were transparent, DWM didn't need to draw anything below Chrome's window to the screen. This is probably because it know that the area outside of DwmExtendFrameIntoClientArea was supposed to have black behind it, so any blending could happen in the shader.

With DirectComposition:
DWM draws from the GDI buffer to the screen (1 read and write) and DWM then draws from Chromes IDXGISwapchain to the screen (1 read and write).

Chrome's swapchain can't normally be marked opaque (until  bug 554033  is implemented), and DWM doesn't that the contents of the GDI buffer are just transparent black, so it has to draw them.

To improve performance, we could create a 1x1 opaque IDCompositionSurface, fill it with black, put it at the bottom of the DirectComposition visual tree, and scale it to the same size as the opaque part of the window. This would avoid an unnecessary read of a bunch of black pixels, though the unnecessary writes would stay there. This would require some sort of communication between the GPU process and browser process about what area of the window is actually opaque.


 
Project Member

Comment 1 by sheriffbot@chromium.org, Aug 10

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: sunn...@chromium.org magchen@chromium.org
Owner: zmo@chromium.org
Status: Assigned (was: Untriaged)
For zmo@ to be triage later.

Sign in to add a comment