OSR OnPaint buffer incomplete

Issue #2197 resolved
Alfred
created an issue

Between the v58 and v60 Chrome update the buffer argument in the OSR call OnPaint() now only contains valid texture data for the dirtied regions, not the whole back buffer as the API states.

Comments (16)

  1. Alfred reporter

    The OS is on windows using branch 3112 @ commit 141ab16 .

    I've been unable to reproduce the problem using cefclient, debugging it in Steam it appears to be a race condition in the tiled renderer. When running Steam in Big Picture mode after the 4th or so paint we get a large clear of the back buffer (but it isn't the whole buffer) but it then never re-renders the whole page. This behavior does not happen on our 2ft VGUI based client, I've been unable to identify the difference between these two paths.

    The issue is that in DirectRenderer::DrawRenderPass the render_pass->quad_list pointer contains only a few elements in the failure case, rather than the usual 30 or so elements (for rendering the test page I am using).

  2. Felix

    I can (partially) confirm the issue for Ubuntu 16.04, branch 3029 @ commit 282d60f.

    Here is what I'm doing for it may help to reproduce the issue:

    First of all, I always use the whole buffer provided by OnPaint() to update a texture buffer. The page I'm rendering contains draggable divs. One of them displays a custom map which is essentially a big, masked image with a position marker on it. When I move the map around, I use jquery to update the marker's position. Now, as soon as the map overlaps over divs on the page, I get strange artifacts that may be related to an invalid buffer (see attached screenshot).

    issue.png

  3. Felix

    Launching cefclient with

    ./cefclient --url="http://tests/pdf.pdf" --off-screen-rendering-enabled
    

    does not reproduce the issue for me. What parameters are you passing?

  4. Marshall Greenblatt

    @Alfred @Felix The problems that you describe sound like issues that may also reproduce with Google Chrome when GPU is disabled (--disable-gpu --disable-gpu-compositing). I would suggest trying to reproduce your issues in Google Chrome and, if successful, filing a bug at http://crbug.com. If you do file a bug please add a link here for reference.

  5. Igor Eremyashev

    @Marshall Greenblatt You mentioned a rendering issue on Windows when showing/hiding select lists. Is it resolved by your fix/changes in latest Chromium versions? I'm facing the same issue using latest CefSharp (CEF v. 3029) , so I'm trying to figure out is it worth updating to the latest CEF version to resolve it.

  6. Log in to comment