diff --git a/renderdoc/driver/dxgi/dxgi_wrapped.cpp b/renderdoc/driver/dxgi/dxgi_wrapped.cpp index b3cd1f0c1..24c5c58a8 100644 --- a/renderdoc/driver/dxgi/dxgi_wrapped.cpp +++ b/renderdoc/driver/dxgi/dxgi_wrapped.cpp @@ -379,9 +379,20 @@ HRESULT WrappedIDXGISwapChain2::GetBuffer( { if(ppSurface == NULL) return E_INVALIDARG; - HRESULT ret = m_pReal->GetBuffer(Buffer, riid, ppSurface); + if(riid == __uuidof(ID3D10Texture2D) || riid == __uuidof(ID3D10Resource)) + { + RDCERR("Querying swapchain buffers via D3D10 interface UUIDs is not supported"); + return E_NOINTERFACE; + } + else if(riid != __uuidof(ID3D11Texture2D) && riid == __uuidof(ID3D11Resource)) + { + RDCERR("Unsupported or unrecognised UUID passed to IDXGISwapChain::GetBuffer - %s", ToStr::Get(riid).c_str()); + return E_NOINTERFACE; + } RDCASSERT(riid == __uuidof(ID3D11Texture2D) || riid == __uuidof(ID3D11Resource)); + + HRESULT ret = m_pReal->GetBuffer(Buffer, riid, ppSurface); ID3D11Texture2D *realSurface = (ID3D11Texture2D *)*ppSurface; ID3D11Texture2D *tex = realSurface;