• Show log

    Commit

  • Hash : a96e9197
    Author : Charlie Lao
    Date : 2024-04-25T10:35:02

    Vulkan: Add RefCountedEvent class and VkCmdSetEvent call
    
    This CL defines RefCountedEvent class that adds reference counting to
    VkEvent. CommandBufferHelper and ImageHelper each holds one reference
    count to the event. Every time an event is added to the command buffer,
    the corresponding RefCountedEvent will be added to the garbage list
    which tracks the GPU completion using ResourceUse. That event garbage's
    reference count will not decremented until GPU is finished, thus ensures
    we never destroy a VkEvent until GPU is completed.
    
    For images used by RenderPassCommands, As
    RenderPassCommandBufferHelper::imageRead and imageWrite get called, an
    event with that layout gets created and added to the image. That event
    is saved in RenderPassCommandBufferHelper::mRefCountedEvents and that
    VkCmdSetEvents calls are issued from
    RenderPassCommandBufferHelper::flushToPrimary(). For renderPass
    attachments, the events are created and added to image when attachment
    image gets finalized.
    
    For images used in OutsideRenderPassCommands, The events are inserted as
    needed as we generates commands that uses image. We do not wait until
    commands gets flushed to issue VkCmdSetEvent calls. A convenient
    function trackImageWithEvent() is added to create and setEvent and add
    event to image all in one call. You can add this call after the image
    operation whenever we think it benefits, which gives us better control.
    
    (Note: Even if forgot to insert the trackImageWithEvent call, it is
    still okay since every time barrier is inserted, the event gets
    released. Next time when we inserts barrier again we will fallback to
    pipelineBarrier since there is no event associated with it. But that is
    next CL's content).
    
    This CL only adds the VkCmdSetEvent call when feature flag is enabled.
    The feature flag is still disabled and no VkCmdWaitEvent is used in this
    CL (will be added in later CL).
    
    Bug: b/336844257
    Change-Id: Iae5c4d2553a80f0f74cd6065d72a9c592c79f075
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5490203
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Reviewed-by: Geoff Lang <geofflang@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