Skip to content
  • ericrk's avatar
    Move GPU raster decision making to GPU proc · 41a1579e
    ericrk authored
    This change moves decision making about whether to use GPU raster
    from the browser process to the GPU process. This allows the
    decision to be made based on more detailed GPU information, which
    is not available to the browser. The new decision making process
    is as follows:
    
    The GPU process loads the GPU blacklist at startup, using more
    complete GPUInfo than is available to the browser. This data is
    combined with flags (forwarded from the browser) to
    generate a GpuFeatureInfo struct which contains enabled/
    blacklisted/disabled values for each GPU feature (currently
    only populated for GPU raster).
    
    The GPU process notifies the browser of its decision
    by passing the GpuFeatureInfo via GpuHostMessage_Initialized.
    The browser uses this info solely to populate about:gpu.
    
    The GPU process notifies the renderer process of its decision
    via context capabilities. The renderer uses this info to make
    decisions on how to rasterize.
    
    In the Render process, we now recieve GPU raster information
    at a later point (when we create our CompositorFrameSink), so
    we can't store this info in LayerTreeSettings. This requires
    a bit of refactoring to have tests use context Capabilities
    rather than LayerTreeSettings to provide this information.
    
    BUG=648493
    R=zmo@chromium.org
    CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
    
    Review-Url: https://codereview.chromium.org/2654993004
    Cr-Commit-Position: refs/heads/master@{#449729}
    41a1579e