[idd] capture: add forced indirect copy
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled

This commit is contained in:
Geoffrey McRae
2026-08-17 05:12:05 +10:00
parent 96c3056cc9
commit 2005ea5d69
7 changed files with 73 additions and 2 deletions

View File

@@ -19,6 +19,7 @@
*/
#include "d3d/CD3D12Device.h"
#include "config/CSettings.h"
#include "CDebug.h"
bool CD3D12Device::s_directHeapFailed = false;
@@ -66,8 +67,12 @@ CD3D12Device::InitResult CD3D12Device::Init(
{
HRESULT hr;
const bool forceIndirectCopy = CSettings::ShouldForceIndirectCopy();
m_computeEnabled = enableCompute;
m_indirectCopy = !directMemory || s_directHeapFailed;
m_indirectCopy = !directMemory || s_directHeapFailed || forceIndirectCopy;
if (forceIndirectCopy)
DEBUG_INFO("Forcing indirect transport copies");
hr = CreateDXGIFactory2(m_debug ? DXGI_CREATE_FACTORY_DEBUG : 0, IID_PPV_ARGS(&m_factory));
if (FAILED(hr))