mirror of
https://github.com/microsoft/DirectXTex
synced 2024-11-09 14:30:05 +00:00
Fix of CaptureTexture for Reserved and MultiSample resources (#218)
This commit is contained in:
parent
fe43f39242
commit
87e5b0e9fa
@ -141,12 +141,6 @@ namespace
|
||||
return HRESULT_E_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
D3D12_HEAP_PROPERTIES sourceHeapProperties;
|
||||
D3D12_HEAP_FLAGS sourceHeapFlags;
|
||||
HRESULT hr = pSource->GetHeapProperties(&sourceHeapProperties, &sourceHeapFlags);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
numberOfResources = (desc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D)
|
||||
? 1u : desc.DepthOrArraySize;
|
||||
numberOfResources *= desc.MipLevels;
|
||||
@ -171,7 +165,9 @@ namespace
|
||||
device->GetCopyableFootprints(&desc, 0, numberOfResources, 0,
|
||||
pLayout, pNumRows, pRowSizesInBytes, &totalResourceSize);
|
||||
|
||||
if (sourceHeapProperties.Type == D3D12_HEAP_TYPE_READBACK)
|
||||
D3D12_HEAP_PROPERTIES sourceHeapProperties;
|
||||
HRESULT hr = pSource->GetHeapProperties(&sourceHeapProperties, nullptr);
|
||||
if (SUCCEEDED(hr) && sourceHeapProperties.Type == D3D12_HEAP_TYPE_READBACK)
|
||||
{
|
||||
// Handle case where the source is already a staging texture we can use directly
|
||||
pStaging = pSource;
|
||||
@ -218,6 +214,7 @@ namespace
|
||||
auto descCopy = desc;
|
||||
descCopy.SampleDesc.Count = 1;
|
||||
descCopy.SampleDesc.Quality = 0;
|
||||
descCopy.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT;
|
||||
|
||||
ComPtr<ID3D12Resource> pTemp;
|
||||
hr = device->CreateCommittedResource(
|
||||
|
@ -691,12 +691,8 @@ namespace
|
||||
return HRESULT_E_NOT_SUPPORTED;
|
||||
|
||||
D3D12_HEAP_PROPERTIES sourceHeapProperties;
|
||||
D3D12_HEAP_FLAGS sourceHeapFlags;
|
||||
HRESULT hr = pSource->GetHeapProperties(&sourceHeapProperties, &sourceHeapFlags);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
if (sourceHeapProperties.Type == D3D12_HEAP_TYPE_READBACK)
|
||||
HRESULT hr = pSource->GetHeapProperties(&sourceHeapProperties, nullptr);
|
||||
if (SUCCEEDED(hr) && sourceHeapProperties.Type == D3D12_HEAP_TYPE_READBACK)
|
||||
{
|
||||
// Handle case where the source is already a staging texture we can use directly
|
||||
pStaging = pSource;
|
||||
@ -745,6 +741,7 @@ namespace
|
||||
auto descCopy = desc;
|
||||
descCopy.SampleDesc.Count = 1;
|
||||
descCopy.SampleDesc.Quality = 0;
|
||||
descCopy.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT;
|
||||
|
||||
ComPtr<ID3D12Resource> pTemp;
|
||||
hr = device->CreateCommittedResource(
|
||||
|
Loading…
Reference in New Issue
Block a user