• Show log

    Commit

  • Hash : 1365f5b3
    Author : Igor Nazarov
    Date : 2022-09-09T17:19:26

    Vulkan: Fix Swapchain Acquire Image Semaphore wait stage flags.
    
    There is a screen tearing on G996B with single
    "glClear(GL_COLOR_BUFFER_BIT)" no scissor in the frame.
    
    Fixed by defining "kSwapchainAcquireImageWaitStageFlags" and
    adding "VK_PIPELINE_STAGE_TRANSFER_BIT" stage flag.
    
    Also added "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT" stage, because first
    use of the Swapchain Image after Acquire may be in the
    "glBlitFramebuffer()" command.
    
    This fix may slightly affect performance. In such case, a better fix
    should be implemented (include only stages based on the actual first
    use). However, this may be not trivial.
    
    Additionally, "kSwapchainAcquireImageWaitStageFlags" is used as a source
    stage mask in the "ImageLayout::Present" pipeline barrier. This is
    needed in order to build a dependency chain from the Acquire Image
    Semaphore to the layout transition's first synchronization scope, so
    that layout transition happens after acquire semaphore is signaled.
    Reference:
        https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples#combined-graphicspresent-queue
        https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation
    
    Alternative fix of both issues is to define:
    
        kSwapchainAcquireImageWaitStageFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
    
    This might potentially delay command buffer execution relative to the
    Swapchain Acquire Image Semaphore signal operations, but will relax
    the pipeline barrier.
    
    Bug: angleproject:8030
    Test: angle_end2end_tests --gtest_also_run_disabled_tests --gtest_filter=EGLSurfaceTest.DISABLED_RandomClearTearing*
    Change-Id: I29f58862c4b369524b2555dd944e2fb67eebe956
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4271377
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
    Reviewed-by: 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