MCPcopy Create free account
hub / github.com/carbonengine/trinity / UpdateSubresources

Function UpdateSubresources

trinityal/dx12/Utilities.h:56–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54// Stack-allocating UpdateSubresources implementation
55template <UINT MaxSubresources>
56inline UINT64 UpdateSubresources(
57 _In_ ID3D12GraphicsCommandList* pCmdList,
58 _In_ ID3D12Resource* pDestinationResource,
59 _In_ ID3D12Resource* pIntermediate,
60 UINT64 IntermediateOffset,
61 _In_range_( 0, MaxSubresources ) UINT FirstSubresource,
62 _In_range_( 1, MaxSubresources - FirstSubresource ) UINT NumSubresources,
63 _In_reads_( NumSubresources ) const D3D12_SUBRESOURCE_DATA* pSrcData )
64{
65 UINT64 RequiredSize = 0;
66 D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources];
67 UINT NumRows[MaxSubresources];
68 UINT64 RowSizesInBytes[MaxSubresources];
69
70 D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
71 ID3D12Device* pDevice;
72 pDestinationResource->GetDevice( __uuidof( ID3D12Device ), reinterpret_cast<void**>( &pDevice ) );
73 pDevice->GetCopyableFootprints( &Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize );
74 pDevice->Release();
75
76 return UpdateSubresources( pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData );
77}
78
79UINT64 GetRequiredIntermediateSize(
80 _In_ ID3D12Resource* pDestinationResource,

Callers 2

CreateMethod · 0.70
CreateMethod · 0.70

Calls 2

GetDeviceMethod · 0.80
ReleaseMethod · 0.80

Tested by

no test coverage detected