4 ms·
"Nowadays, video rendering is no longer done with overlays." Darn, I thought this explained why, after upgrading my GPU, videos playing in Chrome have a thin g
by edgineer 1y ago
"Nowadays, video rendering is no longer done with overlays."
Darn, I thought this explained why, after upgrading my GPU, videos playing in Chrome have a thin green stripe on their right edge.
- jadamson 1y agoI did some Googling on your behalf as I remember having something like that but can't reproduce it right now: https://old.reddit.com/r/OLED_Gaming/comments/1kovgdx/green_vertical_line_on_videos_in_chromium_browsers/mt8vd5q/ https://old.reddit.com/r/OLED_Gaming/comments/1kovgdx/green_... I'd make sure your drivers are up to date before fiddling with Chrome flags though.
- BearOso 1y agoVideo rendering can still be done with overlays, but it's a little more substantial, involving separate planes with the locations configurable on the graphics card. Look up MPO, Multi-Plane Overlay. Your green stripe is likely because of the classic combination of unclamped bilinear filtering and a texture that's larger than the output region being used as the drawing surface for the video.
- huflungdung 1y ago[dead]
- petermcneeley 1y agoThis is simply wrong. Videos are still rendering in overlays in windows in Chrome right now. There are many reasons why overlays are still used.
- Kwpolska 1y ago[citation needed] If video rendering used overlays, then YouTube could not put the toolbar or subtitles on top of the video, and they’ve been doing so for a long time.
- charcircuit 1y agoThe toolbar and subtitles are in a separate plane that gets composited on top. https://issues.chromium.org/issues/40140067 https://issues.chromium.org/issues/40140067 >In today's Chrome, when a device supports hardware overlays, we promote at most one video's frames to hardware overlays.
- petermcneeley 1y agoModern overlay systems support alpha compositing. The video is placed behind and the elements (toolbar etc) are in front with an alpha hole.
- kimixa 1y agoThey still use "overlays" - just they're a lot more featureful in modern implementations than "Replace all of one colour with another surface" - so they tend not to have the same limitations and quirks. MS started exposing some capabilities using MPO in the windows 8 era [0], and they've pretty much always had pretty comprehensive composition pipes in hardware for mobile platforms due to the power/bandwidth limitations meaning compositing the display can be a significant fraction of the total device's performance. I suspect green (or other block colour) artifacts on video edges are due to bugs/mismatches in specification with the hardware video decoder and how the app displays it, and the bugs that often fall out of that. Most video compression requires pretty large blocks, normally from 16x16 up 64x64 depending on format, and that may not align with the actual video size (e.g. 1080 does not divide by either). But often implementations still need that extra surface, as things like motion vectors may still refer to data in the "invisible" portion. And it has to be filled with something. It's then real easy to fall into bugs where small numeric errors in things like blending, or even just mix-ups between the different "sizes" that surface has, to cause issues at the edges. I suspect the other comment about using ANGLE/dx9/dx11-on-12 may be effective as it /also/ causes the hardware video decoder not to be used, which is often a source of "unexpected" differences or limitations that commonly cause errors like that. [0] https://learn.microsoft.com/en-us/windows-hardware/drivers/display/multiplane-overlay-support https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
- ack_complete 1y agoA green stripe on the right/bottom is usually due to a different issue: interpolation errors in chroma planes when decoding YCbCr video. The chroma planes use a biased encoding where 0 (no color) is mapped to 128. A sloppy YCbCr to RGB conversion without proper clamping can interpolate against 0 at edges, which is interpreted as max negative chroma red/blue -- which combined together produces green. This can happen either due to an incorrectly padded texture or failing to handle the special final sample case for 4:2:2 chroma. This issue can happen with overlays, but also non-overlay GPU drawing or CPU conversion routines.