ID3D12Device::CreateCommittedResource メソッド (d3d12.h)
リソース全体を格納するのに十分な大きさのヒープであり、リソースがヒープにマップされるように、リソースと暗黙的なヒープの両方を作成します。
構文
HRESULT CreateCommittedResource(
[in] const D3D12_HEAP_PROPERTIES *pHeapProperties,
[in] D3D12_HEAP_FLAGS HeapFlags,
[in] const D3D12_RESOURCE_DESC *pDesc,
[in] D3D12_RESOURCE_STATES InitialResourceState,
[in, optional] const D3D12_CLEAR_VALUE *pOptimizedClearValue,
[in] REFIID riidResource,
[out, optional] void **ppvResource
);
パラメーター
[in] pHeapProperties
型: const D3D12_HEAP_PROPERTIES*
リソースのヒープのプロパティを提供する D3D12_HEAP_PROPERTIES 構造体へのポインター。
[in] HeapFlags
種類: D3D12_HEAP_FLAGS
ヒープ オプション。列挙定数のビットごとの OR の組み合わせ D3D12_HEAP_FLAGS 。
[in] pDesc
型: const D3D12_RESOURCE_DESC*
リソースを記述 するD3D12_RESOURCE_DESC 構造体へのポインター。
[in] InitialResourceState
D3D12_RESOURCE_STATES 列挙定数 のビットごとの OR の組み合わせとしてのリソースの初期状態。
D3D12_HEAP_TYPE_UPLOAD ヒープと共にリソースを作成する場合は、InitialResourceState を D3D12_RESOURCE_STATE_GENERIC_READ に設定する必要があります。
D3D12_HEAP_TYPE_READBACK ヒープと共にリソースを作成する場合は、InitialResourceState を D3D12_RESOURCE_STATE_COPY_DEST に設定する必要があります。
[in, optional] pOptimizedClearValue
型: const D3D12_CLEAR_VALUE*
クリア カラーの既定値を記述する D3D12_CLEAR_VALUE 構造体を指定します。
pOptimizedClearValue は、クリア操作が最も最適な値を指定します。 作成されたリソースが 、D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET または D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL フラグを持つテクスチャである場合は、クリア操作が最も一般的に呼び出される値を選択する必要があります。 クリア操作は他の値で呼び出すことができますが、これらの操作は、リソースの作成に渡された値と一致する場合ほど効率的になりません。
D3D12_RESOURCE_DIMENSION_BUFFERを使用する場合は、pOptimizedClearValue を に設定するnullptr
必要があります。
[in] riidResource
型: REFIID
ppvResource で返されるリソース インターフェイスのグローバル一意識別子 (GUID) への参照。
riidResource は最も一般的に ID3D12Resource の GUID ですが、任意のインターフェイスの GUID である可能性があります。 リソース オブジェクトがこの GUID のインターフェイスをサポートしていない場合、 作成は E_NOINTERFACE で失敗します。
[out, optional] ppvResource
型: void**
作成されたリソース オブジェクトへの要求されたインターフェイス ポインターを受け取るメモリ ブロックへの省略可能なポインター。
ppvResource には を指定 nullptr
して、機能テストを有効にすることができます。 ppvResource が の場合、nullptr
オブジェクトは作成されません。pDesc が有効な場合、S_FALSEが返されます。
戻り値
型: HRESULT
関数が成功した場合は、S_OK を返します。 それ以外の場合は、 HRESULTエラー コードが返されます。
戻り値 | 説明 |
---|---|
E_OUTOFMEMORY | リソースを作成するためのメモリが不足しています。 |
その他の可能な戻り値については、「戻りコードDirect3D 12」を参照してください。
注釈
このメソッドは、リソースとヒープの両方を作成します。これにより、ヒープはリソース全体を格納するのに十分な大きさになり、リソースはヒープにマップされます。 ヒープ オブジェクトはアプリケーションで取得できないため、作成されたヒープは暗黙的なヒープと呼ばれます。 リソースの最後の参照を解放する前に、アプリケーションで GPU がこのリソースの読み取りまたは書き込みを行えなくなることを確認する必要があります。
暗黙的なヒープは、メソッドがアプリケーションに制御を返す前に、GPU アクセス用に常駐させます。 「 レジデンシー」も参照してください。
リソース GPU VA マッピングは変更できません。 ID3D12CommandQueue::UpdateTileMappings とボリューム タイル リソースに関するページを参照してください。
このメソッドは、複数のスレッドによって同時に呼び出される場合があります。
例
D3D12Bundles サンプルでは、次のように ID3D12Device::CreateCommittedResource を使用します。
頂点バッファーを作成します。
auto heapProperties = CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT);
auto resourceDesc = CD3DX12_RESOURCE_DESC::Buffer(SampleAssets::VertexDataSize);
ThrowIfFailed(m_device->CreateCommittedResource(
&heapProperties,
D3D12_HEAP_FLAG_NONE,
&resourceDesc,
D3D12_RESOURCE_STATE_COPY_DEST,
nullptr,
IID_PPV_ARGS(&m_vertexBuffer)));
Direct3D 12 リファレンスのコード例を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d12.h |
Library | D3D12.lib |
[DLL] | D3D12.dll |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示