D3D Debug Errors & Warnings - ExecuteCommandLists/ResourceBarrier

Hello!

I’ve been trying to implement a separate feature that would benefit from having a cleaner output from enabling -d3ddebug (or in this case -d3dcontinueonerrors due to errors), however I can’t easily work out which warnings and errors are being generated from base UE and which are generated from our particular usage or changes we’ve made and it would be good to reduce all warnings and errors wherever possible for maintenance/detecting issues in the future. After testing in 5.7.2 vanilla, with just the third person sample project, a number of the simultaneous access warnings appear, but I could not get ExecuteCommandList errors to appear, however in our project they do not appear consistently and may be a result of a race condition or material combination that isn’t present in the sample.

I’ve attached an example log from the test project, along with a text file containing the extracted names of the most common error & warning messages from both the test project and our project (log could contain sensitive information unfortunately).

So the questions are essentially:

  1. Are any of the errors and warnings likely a result of incorrect usage on our part?
  2. Is there a planned update to address any of these and if so, is it coming in the near future?
  3. Do you have any advice on how to filter out likely inconsequential warnings without potentially missing out on important ones?

Thanks for any help, very appreciated!

Billy Fletcher

Lead Programmer

d3t Ltd

[Attachment Removed]

Steps to Reproduce
For the base UE reproduction, using 5.7.2 (github commmit dbd4567):

  1. Create ThirdPerson C++ sample project
  2. Import attached settings to rendering project settings page
  3. Package project
  4. Run with -d3ddebug command line argument
  5. Observe generated warnings and errors
    [Attachment Removed]

Hello!

Apologies for the late reply, was on vacation unfortunately!

In terms of the environment: the only things that spring to mind are that I’m operating through Parsec and Windows RDP (happens on both) and the PC running the games has both a motherboard integrated AMD graphics adapter and an Nvidia GPU (only has Nvidia supporting software installed though, AMD drivers are windows default and the adapter is unused). Other than that I have the PS5 (v11.00.00.40) and Xbox (v250400) S/GDKs installed (not sure if the GDK may affect the DX runtime used?).

Can confirm “LogD3D12RHI: DirectX Agility SDK runtime found.” appears, doesn’t appear to supply any version information I can check against though? Here’s the surrounding logs:

LogRHI: Log: Using Default RHI: D3D12
LogRHI: Log: Using Highest Feature Level of D3D12: SM6
LogRHI: Log: Loading RHI module D3D12RHI
LogD3D12RHI: Log: Loading WinPixEventRuntime.dll for PIX profiling (from ../../../Engine/Binaries/ThirdParty/Windows/WinPixEventRuntime/x64).
LogRHI: Log: Checking if RHI D3D12 with Feature Level SM6 is supported by your system.
LogD3D12RHI: Log: Found D3D12 adapter 0: NVIDIA GeForce RTX 4070 Ti SUPER (VendorId: 10de, DeviceId: 2705, SubSysId: f3041569, Revision: 00a1
LogD3D12RHI: Log:   Max supported Feature Level 12_2, shader model 6.7, binding tier 3, wave ops supported, atomic64 supported
LogD3D12RHI: Log:   Adapter has 16063MB of dedicated video memory, 0MB of dedicated system memory, and 65130MB of shared system memory, 1 output[s], UMA:false
LogD3D12RHI: Log:   Driver Version: 581.29 (internal:32.0.15.8129, unified:581.29)
LogD3D12RHI: Log:      Driver Date: 9-5-2025
LogD3D12RHI: Log: Found D3D12 adapter 1: AMD Radeon(TM) Graphics (VendorId: 1002, DeviceId: 164e, SubSysId: 88771043, Revision: 00c1
LogD3D12RHI: Log:   Max supported Feature Level 12_1, shader model 6.7, binding tier 3, wave ops supported, atomic64 supported
LogD3D12RHI: Log:   Adapter has 485MB of dedicated video memory, 0MB of dedicated system memory, and 65130MB of shared system memory, 0 output[s], UMA:true
LogD3D12RHI: Log:   Driver Version: AMD Software: Adrenalin Edition 23.40.02 (internal:31.0.24002.92, unified:31.0.24002.92)
LogD3D12RHI: Log:      Driver Date: 1-11-2024
LogD3D12RHI: Log: Found D3D12 adapter 2: Microsoft Basic Render Driver (VendorId: 1414, DeviceId: 008c, SubSysId: 0000, Revision: 0000
LogD3D12RHI: Log:   Max supported Feature Level 12_1, shader model 6.7, binding tier 3, wave ops supported, atomic64 supported
LogD3D12RHI: Log:   Adapter has 0MB of dedicated video memory, 0MB of dedicated system memory, and 65130MB of shared system memory, 0 output[s], UMA:true
LogD3D12RHI: Log:   D3D10Warp Version: 10.0.26100.7309
LogD3D12RHI: Log: Found D3D12 adapter 3: NVIDIA GeForce RTX 4070 Ti SUPER (VendorId: 10de, DeviceId: 2705, SubSysId: f3041569, Revision: 00a1
LogD3D12RHI: Log:   Max supported Feature Level 12_2, shader model 6.7, binding tier 3, wave ops supported, atomic64 supported
LogD3D12RHI: Log:   Adapter has 16063MB of dedicated video memory, 0MB of dedicated system memory, and 65130MB of shared system memory, 0 output[s], UMA:false
LogD3D12RHI: Log:   Driver Version: 581.29 (internal:32.0.15.8129, unified:581.29)
LogD3D12RHI: Log:      Driver Date: 9-5-2025
LogD3D12RHI: Log: DirectX Agility SDK runtime found.
LogD3D12RHI: Log: Chosen D3D12 Adapter Id = 0
LogRHI: Log: RHI D3D12 with Feature Level SM6 is supported and will be used.
LogFSR: Log: FSR Temporal Upscaling Module Started
LogFFXFI: Log: FFX Frame Interpolation Module Started
LogRHI: Log: Using Default RHI: D3D12
LogRHI: Log: Using Highest Feature Level of D3D12: SM6
LogRHI: Log: Loading RHI module D3D12RHI
LogRHI: Log: Checking if RHI D3D12 with Feature Level SM6 is supported by your system.
LogRHI: Log: RHI D3D12 with Feature Level SM6 is supported and will be used.
[2026.01.22-16.26.05:809][  0]LogRHI: Log: Using Default RHI: D3D12
[2026.01.22-16.26.05:809][  0]LogRHI: Log: Using Highest Feature Level of D3D12: SM6
[2026.01.22-16.26.05:809][  0]LogRHI: Log: Loading RHI module D3D12RHI
[2026.01.22-16.26.05:809][  0]LogRHI: Log: Checking if RHI D3D12 with Feature Level SM6 is supported by your system.
[2026.01.22-16.26.05:810][  0]LogRHI: Log: RHI D3D12 with Feature Level SM6 is supported and will be used.

I’m guessing it’s the remote access causing the issue, so I’ll have someone with local access try performing the test, however if it’s related to DX SDK, is there an easy way to see which SDK version is being used? It’s not something we explicitly seem to manage.

Thanks for your help!

[Attachment Removed]

Found the difference between our runs/when the messages occur: It’s only when ran with “-d3dcontinueonerrors”, “-d3dlogwarnings” or “-d3dbreakonwarning” that these warnings appear due to “-d3ddebug” only showing errors and your log only shows “-d3ddebug” (apologies I didn’t make this clear).

It looks like the errors are only in our project but it’s hard to ascertain what, if any, of the warnings relate to the project specific errors and what are always present in default 5.7.2. I can look at running it again in 5.7.3 but based on the diff I’m not expecting anything in 5.7.3 to affect it. Any help on this front would be greatly appreciated!

Also to update after checking: this does occur on non-remote/local ran instances.

[Attachment Removed]

That’s worked to clean up things significantly, thank you! We’ll suppress the thread dispatch warning as needed for now, but any further progress you make on the source of the issue will be greatly appreciated also.

Also if you have any idea what could be a common cause for an error like the following, that would be greatly appreciated, as it shows up a lot but isn’t present when using the basic sample project:

LogD3D12RHI: Error: === Handled error: ===
 
[D3DDebug] ID3D12CommandQueue1::ExecuteCommandLists: Simultaneous-access or Buffer Resource (0x000001D1CC553150:'Unnamed Object') is still referenced by read|write|transition_barrier GPU operations in-flight on another Command Queue (0x000001CE8B349A00:'Compute Queue (GPU 0)'). It is not safe to start transition_barrier GPU operations now on this Command Queue (0x000001CE8B1E15E0:'game.cmdQueue'). This can result in race conditions and application instability.
 
    From    => [\UnrealEngine\Engine\Source\Runtime\D3D12RHI\Private\D3D12Adapter.cpp(240)]

No worries if no idea and thanks again.

[Attachment Removed]

Thanks again, will integrate the latter fix (essentially already have the former) and thanks for the information around fences/resource transitions. Unfortunately my account doesn’t have access to confidential questions for sharing captures but I’ll enquire around it if we can’t find a solution.

That said, I did realise that the error’s ‘Unnamed resource’ is an issue with using a Test (or Shipping) build, which seems to strip texture and other resource names. We’ve dealt with this issue in the past due to DLSS/Streamline’s View Extension relying on resource names to identify certain textures for error reporting. I couldn’t find any engine change we made that would create this behaviour, but there must be something doing it as I have not seen other developers running into the same issue (any ideas?). Anyway, running in Development at least gives us the resource names now, with the main culprit being:

[2026.03.18-14.29.40:098][10258]LogD3D12RHI: Error: === Handled error: ===
[D3DDebug] ID3D12CommandQueue1::ExecuteCommandLists: Simultaneous-access or Buffer Resource (0x000001F004A58490:'FRayTracingDynamicGeometryUpdateManager::RayTracingDynamicVertexBuffer') is still referenced by read|write|transition_barrier GPU operations in-flight on another Command Queue (0x000001EFC41E8B90:'Compute Queue (GPU 0)'). It is not safe to start transition_barrier GPU operations now on this Command Queue (0x000001EFC402A210:'game.cmdQueue'). This can result in race conditions and application instability.
    From    => [\UnrealEngine\Engine\Source\Runtime\D3D12RHI\Private\D3D12Adapter.cpp(240)]

With regards to when it occurs, it appears to be every 3-4 frames when looking at certain materials, I’m not sure which at this stage due to it only occurring in a dense open world level with a lot of different materials present (a lot of foliage especially).

It also occurs is on our map screen, which gives a similar error but references ‘SkyLight.CubeDepthTexture’. I’ll investigate further into the material setup there, it should be easier due it being much more isolated. I’ll have a look at a PIX capture and see if there’s anything obvious, although I’m not primarily a graphics programmer so it may be limited, I’ll involve people as necessary though.

As far as engine modifications go, there aren’t any real modifications to any of the RHI/RHICore/D3D12RHI modules, but there are in Renderer/RenderCore that presumably could have knock-on effects.

Purely for context (there may be other tickets later but waiting on graphics card vendor assistance first) the reasoning behind clearing this up other than good practice for bug fixing later, is to help with diagnosing issues with an attempt to recreate the D3D swapchain fully at runtime in order to support switching frame generation plugins at runtime without a restart, so we’re happy to suppress errors temporarily if needed, but I wanted to address those we likely weren’t responsible for/did not have the engine experience around first. That said none of the changes for this are present and the issues appear regardless of whether any upscaling plugin is enabled.

[Attachment Removed]