• Show log

    Commit

  • Hash : 1608a956
    Author : Charlie Lao
    Date : 2022-02-02T13:54:53

    Vulkan: Revert client vertex data streaming to use DynamicBuffer
    
    In early CL crrev.com/c/3352489, I switched client vertex data streaming
    from using DynamicBuffer to sub-allocating from the buffer pool. That
    caused CPU overhead regression due to extra cost of handling the
    suballocation object creating and garbage collection etc. Even after all
    other optimizations I did since then that significantly improved garbage
    collection performance, there is still 6% CPU time regression as
    measured with gardenscape. This CL moves StreamVertexData() back to use
    DynamicBuffer. In order to do that, I have cleaned up DynamicBuffer
    interface to be consistent with suballocation interface by storing the
    current allocated offset/size in the suballocation object. With that,
    the BufferHelper object that returned from DynamicBuffer will be able to
    pass around and referenced exactly like it comes from suballocation code
    path, and you can retrieve offset/size from that BufferHelper object
    instead of having to pass offset around between various function calls.
    Given that streaming vertex data from client memory is only possible for
    default vertex array and there is only one default vertex array for each
    context, this stream vertex data dynamic buffer is essentially a per
    context object. So the other change I made here is that I have merged
    mDynamicVertexData with default attribute (which uses per context
    dynamic buffers) code to use the same sets of dynamic buffers, since you
    will only use one or the other but not both.
    
    Bug: b/205337962
    Change-Id: I0ceca5b854069f00afdb9544ee86953b9b773821
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3434645
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    Commit-Queue: Charlie Lao <cclao@google.com>
    

  • 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
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags