• Ken Buchanan's avatar
    DrawQuad hit testing should query renderer whenever it hits a Surface · e1186494
    Ken Buchanan authored
    SurfaceHittest finds a target Surface for a point and signals whether
    there should be additional hit testing done in the renderer.
    
    Currently this only happens if there is a Surface quad and a
    non-Surface DrawQuad under the point, in which case the browser
    sets query_renderer in order to get a more confident target.
    
    However, in cases where the Surface is occluded by a RenderPass that
    has no DrawQuads in that location, it doesn't set query_renderer
    because there does not appear to be a reason to do so. Instead, it
    incorrectly thinks the RenderPass is the correct target. This is
    problematic because layer squashing can create layers that are much
    larger than the elements within them.
    
    This CL changes this behavior so that it always queries when there is a
    Surface at the given point.
    
    This will increase the number of asynchronous hit tests that are
    performed in general.
    
    Bug: 851802
    Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
    Change-Id: I4e878101533e2794fc44cd16f36ea5cd104e59e2
    Reviewed-on: https://chromium-review.googlesource.com/1101579Reviewed-by: default avatarSadrul Chowdhury <sadrul@chromium.org>
    Commit-Queue: Ken Buchanan <kenrb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#567500}
    e1186494
surface_hittest.cc 11.9 KB