diff --git a/idd/LGIdd/CFrameBufferResource.cpp b/idd/LGIdd/CFrameBufferResource.cpp
index cebf65af..41c30d90 100644
--- a/idd/LGIdd/CFrameBufferResource.cpp
+++ b/idd/LGIdd/CFrameBufferResource.cpp
@@ -12,7 +12,10 @@ bool CFrameBufferResource::Init(CSwapChainProcessor * swapChain, uint8_t * base,
 
   // nothing to do if the resource already exists and is large enough
   if (m_base == base && m_size >= size)
+  {
+    m_frameSize = size;
     return true;
+  }
 
   Reset();
 
@@ -87,9 +90,10 @@ bool CFrameBufferResource::Init(CSwapChainProcessor * swapChain, uint8_t * base,
 
   m_res->SetName(resName);
 
-  m_base  = base;
-  m_size  = size;
-  m_valid = true;
+  m_base      = base;
+  m_size      = size;
+  m_frameSize = size;
+  m_valid     = true;
   return true;
 }
 
diff --git a/idd/LGIdd/CFrameBufferResource.h b/idd/LGIdd/CFrameBufferResource.h
index 1ec6a2f4..ba8377d9 100644
--- a/idd/LGIdd/CFrameBufferResource.h
+++ b/idd/LGIdd/CFrameBufferResource.h
@@ -16,6 +16,7 @@ class CFrameBufferResource
     bool                   m_valid;
     uint8_t              * m_base;
     size_t                 m_size;
+    size_t                 m_frameSize;
     ComPtr<ID3D12Resource> m_res;
     void                 * m_map;
 
@@ -23,10 +24,11 @@ class CFrameBufferResource
     bool Init(CSwapChainProcessor * swapChain, uint8_t * base, size_t size);
     void Reset();
 
-    bool      IsValid() { return m_valid; }
-    uint8_t * GetBase() { return m_base;  }
-    size_t    GetSize() { return m_size;  }
-    void *    GetMap()  { return m_map;   }
+    bool      IsValid()      { return m_valid;     }
+    uint8_t * GetBase()      { return m_base;      }
+    size_t    GetSize()      { return m_size;      }
+    size_t    GetFrameSize() { return m_frameSize; }
+    void *    GetMap()       { return m_map;       }
 
     ComPtr<ID3D12Resource> Get() { return m_res; }
 };
diff --git a/idd/LGIdd/CSwapChainProcessor.cpp b/idd/LGIdd/CSwapChainProcessor.cpp
index 56d58833..eec3afde 100644
--- a/idd/LGIdd/CSwapChainProcessor.cpp
+++ b/idd/LGIdd/CSwapChainProcessor.cpp
@@ -217,7 +217,8 @@ void CSwapChainProcessor::SwapChainNewFrame(ComPtr<IDXGIResource> acquiredBuffer
   m_dx12Device->GetCopyQueue().Reset();
 
   if (m_dx12Device->IsIndirectCopy())
-    m_devContext->WriteFrameBuffer(fbRes->GetMap(), 0, fbRes->GetSize(), true);
+    m_devContext->WriteFrameBuffer(
+      fbRes->GetMap(), 0, fbRes->GetFrameSize(), true);
   else
     m_devContext->FinalizeFrameBuffer();
 }
\ No newline at end of file