• Show log

    Commit

  • Hash : 5cf7472d
    Author : Tim Van Patten
    Date : 2020-11-20T13:07:53

    Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9
    
    Multithreaded apps can use the following pattern:
    
      glDrawElements()
      glFenceSync()
      glFlush()
      glWaitSync()
    
    This currently results in a vkQueueSubmit for every glFlush() to ensure
    that the work has landed in the command queue in the correct order.
    However, ANGLE can instead avoid the vkQueueSubmit during the glFlush()
    in this situation by instead flushing the ContextVk's commands and
    ending the render pass to ensure the commands are submitted in the
    correct order to the renderer. This improves performance for Asphalt 9
    by reducing frame times from 150-200msec to 35-55msec.
    
    Specifically, ANGLE will call flushCommandsAndEndRenderPass() when
    there is a sync object pending a flush or if the ContextVk is currently
    shared.
    
    Additionally, on all devices except Qualcomm, ANGLE can ignore all other
    glFlush() calls entirely and return immediately. For Qualcomm devices,
    ANGLE is still required to perform a full flush (resulting in a
    vkQueueSubmit), since ignoring the glFlush() reduces the Manhattan 3.0
    offscreen score by ~3%.
    
    Bug: angleproject:5306
    Bug: angleproject:5425
    Change-Id: I9d747caf5bf306166be0fec630a78caf41208c27
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552718
    Commit-Queue: Tim Van Patten <timvp@google.com>
    Reviewed-by: Charlie Lao <cclao@google.com>
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    Tags