diff --git a/idd/LGIdd/CD3D12Device.cpp b/idd/LGIdd/CD3D12Device.cpp
index 3d56d779..57280b9e 100644
--- a/idd/LGIdd/CD3D12Device.cpp
+++ b/idd/LGIdd/CD3D12Device.cpp
@@ -1,10 +1,11 @@
 #include "CD3D12Device.h"
 #include "CDebug.h"
 
+bool CD3D12Device::m_indirectCopy = false;
+
 CD3D12Device::CD3D12Device(LUID adapterLuid) :
   m_adapterLuid(adapterLuid),
-  m_debug(false),
-  m_indirectCopy(false)
+  m_debug(false)
 {
   if (m_debug)
   {
diff --git a/idd/LGIdd/CD3D12Device.h b/idd/LGIdd/CD3D12Device.h
index fe77a6d4..8cfaa5e3 100644
--- a/idd/LGIdd/CD3D12Device.h
+++ b/idd/LGIdd/CD3D12Device.h
@@ -16,7 +16,9 @@ struct CD3D12Device
   private:
     LUID m_adapterLuid;
     bool m_debug;
-    bool m_indirectCopy;
+
+    // static as this needs to persist if set
+    static bool m_indirectCopy;
 
     ComPtr<ID3D12Debug6    > m_dxDebug;
     ComPtr<ID3D12InfoQueue1> m_infoQueue;