diff --git a/DirectXTex/DirectXTexD3D12.cpp b/DirectXTex/DirectXTexD3D12.cpp index c6101b8..7bee954 100644 --- a/DirectXTex/DirectXTexD3D12.cpp +++ b/DirectXTex/DirectXTexD3D12.cpp @@ -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 pTemp; hr = device->CreateCommittedResource( diff --git a/ScreenGrab/ScreenGrab12.cpp b/ScreenGrab/ScreenGrab12.cpp index a71102a..d0add34 100644 --- a/ScreenGrab/ScreenGrab12.cpp +++ b/ScreenGrab/ScreenGrab12.cpp @@ -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 pTemp; hr = device->CreateCommittedResource(