Skip to content

Commit

Permalink
[d3d11] Add debug region for UAV overlap
Browse files Browse the repository at this point in the history
  • Loading branch information
doitsujin committed Feb 16, 2025
1 parent ec36b61 commit e32715e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 8 deletions.
29 changes: 22 additions & 7 deletions src/d3d11/d3d11_context_ext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,15 +143,30 @@ namespace dxvk {
void STDMETHODCALLTYPE D3D11DeviceContextExt<ContextType>::SetBarrierControl(
UINT ControlFlags) {
D3D10DeviceLock lock = m_ctx->LockContext();
D3D11Device* parent = static_cast<D3D11Device*>(m_ctx->GetParentInterface());
DxvkBarrierControlFlags flags = parent->GetOptionsBarrierControlFlags();

if (ControlFlags & D3D11_VK_BARRIER_CONTROL_IGNORE_WRITE_AFTER_WRITE)
flags.set(DxvkBarrierControl::IgnoreComputeWriteAfterWrite, DxvkBarrierControl::IgnoreGraphicsWriteAfterWrite);
if (m_barrierControl != ControlFlags) {
D3D11Device* parent = static_cast<D3D11Device*>(m_ctx->GetParentInterface());

m_ctx->EmitCs([cFlags = flags] (DxvkContext* ctx) {
ctx->setBarrierControl(cFlags);
});
DxvkBarrierControlFlags builtIn = parent->GetOptionsBarrierControlFlags();
DxvkBarrierControlFlags flags = 0u;

if (ControlFlags & D3D11_VK_BARRIER_CONTROL_IGNORE_WRITE_AFTER_WRITE)
flags.set(DxvkBarrierControl::IgnoreComputeWriteAfterWrite, DxvkBarrierControl::IgnoreGraphicsWriteAfterWrite);

m_ctx->EmitCs([
cFlags = flags,
cBuiltIn = builtIn
] (DxvkContext* ctx) {
ctx->setBarrierControl(cFlags | cBuiltIn);

if (!cFlags.isClear())
ctx->beginDebugLabel(vk::makeLabel(0x9bded9, "UAV Overlap"));
else
ctx->endDebugLabel();
});
}

m_barrierControl = ControlFlags;
}


Expand Down
4 changes: 3 additions & 1 deletion src/d3d11/d3d11_context_ext.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@ namespace dxvk {
uint32_t NumWriteResources);

private:

ContextType* m_ctx;

UINT m_barrierControl = 0u;

};

}

0 comments on commit e32715e

Please sign in to comment.