• Show log

    Commit

  • Hash : 2ac49bb6
    Author : Charlie Lao
    Date : 2025-07-01T12:11:12

    Reland "Vulkan: Move VertexArray::ElementBuffer away from observer"
    
    This reverts commit 79ac1a8cd767a32cce6401203e20c4bd4ca4d539.
    
    Reason for revert: the regression bug is fixed in PS6
    
    The regression bug with the original CL is caused by when we bind a
    vertex array without element buffer rebind, we missed to reset
    mIndexRangeInlineCache. The other bug is that VertexArray::mDiryBits is
    64 bit but VertexArrayBufferBindingMask is 16 bit, in
    VertexArray::setDependentDirtyBits(), bufferBindingMask.to_ulong() <<
    DIRTY_BIT_BUFFER_DATA_0 is only producing the 32 bit value on windows
    platform due to unsigned long is 32 bit value. bits() is used and bit
    shift is operated on to uint64_t here to avoid dropping high bits on
    windows.
    
    Two tests are added that reproduce the regression bug caused by
    the original CL.
    
    Bug: angleproject:400711938
    Original change's description:
    > Revert "Vulkan: Move VertexArray::ElementBuffer away from observer"
    >
    > This reverts commit 3f012a43ee2c101543785720eedfeaa80708479d.
    >
    > Reason for revert: https://issues.chromium.org/427064102
    >
    > Bug: angleproject:400711938
    > Original change's description:
    > > Vulkan: Move VertexArray::ElementBuffer away from observer
    > >
    > > Right now, VertexArray's element buffer is always observing buffer's
    > > change. In previous CLs, we have moved vertex array away from
    > > subject/observer usage. This CL moves element buffer away from
    > > subject/observer as well. Since the gl::Buffer tracks buffer's binding
    > > to each context's current vertex array's binding point,
    > > kElementArrayBufferIndex is added to VertexArrayBufferBindingMask bits
    > > so that the element buffer is tracked exactly the same as other vertex
    > > array buffer bindings. The VerextArray code has been modified to handle
    > > this special bit, since element buffer has its own binding point
    > > VertexArrayState::mElementArrayBuffer as opposed to
    > > VertexArrayState::mVertexBindings. After this CL, VertexArray object
    > > should be completely off subject/observer usages.
    > >
    > > Bug: angleproject:400711938
    > > Change-Id: I662ddfabc95034bdc7734939c944ab033f41801c
    > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552160
    > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    > > Reviewed-by: Geoff Lang <geofflang@chromium.org>
    > > Commit-Queue: Charlie Lao <cclao@google.com>
    >
    > Bug: angleproject:400711938
    > Change-Id: I9487ba8b108baaeda1c8a27189dba64f77616774
    > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663539
    > Commit-Queue: Charlie Lao <cclao@google.com>
    > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
    
    Bug: angleproject:400711938
    Change-Id: I3f47ad1238c41f12b5cbd7a59b84be3fce1e9562
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6664004
    Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
    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