• Daniel Stone's avatar
    gl-renderer: Support EGL_KHR_partial_update · df2095fa
    Daniel Stone authored
    partial_update is an EGL extension which allows us to inform the driver
    ahead of time the limits of the areas we'll be writing to. This helps
    performance for GPU hardware which renders into a local tile buffer:
    informing the driver of the rendering extents means it can avoid
    fetching unchanged tiles into the tile buffer and subsequently writing
    them out.
    
    The extension complements rather than replaces EGL_EXT_buffer_age (used
    before partial_update to know which areas we need to update) and
    EGL_KHR_swap_buffers_with_damage (used after partial_update to inform
    the winsys of the changed region).
    
    Note however that partial_update deals in buffer-damage regions ('what
    has changed since the last time I used _this_ buffer?'), whereas
    swap_buffers_with_damage deals in surface-damage regions ('what has
    changed since the last time I rendered?'). An explanatory diagram can be
    found in the specification:
    https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_partial_update.txt
    
    Fixes: #134Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
    df2095fa
gl-renderer.c 110 KB