EGLContextCompatibilityTest: skipped on Linux Error populating SystemInfo. Warning: incomplete system info collection. 0 GPUs: Active GPU: 0 Optimus: false AMD Switchable: false Mac Switchable: false Note: Google Test filter = TransformFeedbackTestVkEvent.StaleAccessFlagsSkipsBarrier/ES3_1_Vulkan_SwiftShader_UseVkEventForBufferBarrier_IsVertexSyncDeferred [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from TransformFeedbackTestVkEvent [ RUN ] TransformFeedbackTestVkEvent.StaleAccessFlagsSkipsBarrier/ES3_1_Vulkan_SwiftShader_UseVkEventForBufferBarrier_IsVertexSyncDeferred =================================================================== *** BUG TRIGGERED: BufferHelper::recordReadBarrier() barrier skip *** =================================================================== hasEventAndAccess(eventStage=12, readAccess=0x2) == true, so the early-return is taken and NO barrier is emitted for this read. But the ground-truth tracker (reset on reinit) shows that since the last initializeBarrierTracker()/write, the only dstAccessMask bits actually emitted for this EventStage were 0x4. mCurrentReadEvents.mAccessFlags[stage] = 0x6 <-- contains STALE bits mPOCGroundTruthReadAccess[stage] = 0x4 <-- correct value stale bits surviving release() = 0x2 Root cause: RefCountedEventArrayWithAccessFlags inherits non-virtual release() from RefCountedEventArray which clears only mBitMask, leaving mAccessFlags[] stale across BufferHelper::initializeBarrierTracker(). The next replaceEventAtStage() OR-accumulates into the stale value, so hasEventAndAccess() reports a barrier that was never emitted. Vulkan consequence: the prior write is NOT made visible to access type 0x2 at this stage -> SYNC-HAZARD-READ-AFTER-WRITE. =================================================================== AddressSanitizer:DEADLYSIGNAL ================================================================= ==3261==ERROR: AddressSanitizer: UNKNOWN SIGNAL on unknown address 0x79cc0a508db0 (pc 0x7d1c0a1cceec bp 0x7d1c0a0302c0 sp 0x7ffde02714c0 T0) #0 0x7d1c0a1cceec (/lib/x86_64-linux-gnu/libc.so.6+0x8aeec) (BuildId: 6196744a316dbd57c0fd8968df1680aac482cec4) ==3261==Register values: rax = 0x0000000000000000 rbx = 0x0000000000000cbd rcx = 0x00007d1c0a1cceec rdx = 0x0000000000000006 rdi = 0x0000000000000cbd rsi = 0x0000000000000cbd rbp = 0x00007d1c0a0302c0 rsp = 0x00007ffde02714c0 r8 = 0x000057b2171d0df0 r9 = 0x00007fffffffff01 r10 = 0x0000000000000008 r11 = 0x0000000000000246 r12 = 0x0000000000000006 r13 = 0x000000000000000c r14 = 0x0000000000000002 r15 = 0x00000fa381462d08 AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: UNKNOWN SIGNAL (/lib/x86_64-linux-gnu/libc.so.6+0x8aeec) (BuildId: 6196744a316dbd57c0fd8968df1680aac482cec4) ==3261==ABORTING