Skip to content

Latest commit

 

History

History
135 lines (91 loc) · 6.78 KB

nf-d3d12-id3d12device4-createcommittedresource1.md

File metadata and controls

135 lines (91 loc) · 6.78 KB
UID title description helpviewer_keywords tech.root ms.date ms.keywords req.construct-type req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist f1_keywords dev_langs topic_type api_type api_location api_name
NF:d3d12.ID3D12Device4.CreateCommittedResource1
ID3D12Device4::CreateCommittedResource1
Creates both a resource and an implicit heap (optionally for a protected session), such that the heap is big enough to contain the entire resource, and the resource is mapped to the heap. (ID3D12Device4::CreateCommittedResource1)
ID3D12Device4 interface
CreateCommittedResource1 method
ID3D12Device4.CreateCommittedResource1
ID3D12Device4::CreateCommittedResource1
CreateCommittedResource1
CreateCommittedResource1 method
CreateCommittedResource1 method
ID3D12Device4 interface
direct3d12.id3d12device4_createcommittedresource1
d3d12/ID3D12Device4::CreateCommittedResource1
direct3d12
10/15/2019
ID3D12Device4 interface,CreateCommittedResource1 method, ID3D12Device4.CreateCommittedResource1, ID3D12Device4::CreateCommittedResource1, CreateCommittedResource1, CreateCommittedResource1 method, CreateCommittedResource1 method,ID3D12Device4 interface, direct3d12.id3d12device4_createcommittedresource1, d3d12/ID3D12Device4::CreateCommittedResource1
function
d3d12.h
Windows
Windows 10 Build 20348
Windows 10 Build 20348
d3d12.lib
d3d12.dll
Windows
ID3D12Device4::CreateCommittedResource1
d3d12/ID3D12Device4::CreateCommittedResource1
c++
APIRef
kbSyntax
COM
d3d12.lib
d3d12.dll
ID3D12Device4::CreateCommittedResource1

-description

Creates both a resource and an implicit heap (optionally for a protected session), such that the heap is big enough to contain the entire resource, and the resource is mapped to the heap. Also see ID3D12Device::CreateCommittedResource for a code example.

-parameters

-param pHeapProperties [in]

Type: const D3D12_HEAP_PROPERTIES*

A pointer to a D3D12_HEAP_PROPERTIES structure that provides properties for the resource's heap.

-param HeapFlags [in]

Type: D3D12_HEAP_FLAGS

Heap options, as a bitwise-OR'd combination of D3D12_HEAP_FLAGS enumeration constants.

-param pDesc [in]

Type: const D3D12_RESOURCE_DESC*

A pointer to a D3D12_RESOURCE_DESC structure that describes the resource.

-param InitialResourceState [in]

Type: D3D12_RESOURCE_STATES

The initial state of the resource, as a bitwise-OR'd combination of D3D12_RESOURCE_STATES enumeration constants.

When you create a resource together with a D3D12_HEAP_TYPE_UPLOAD heap, you must set InitialResourceState to D3D12_RESOURCE_STATE_GENERIC_READ.

When you create a resource together with a D3D12_HEAP_TYPE_READBACK heap, you must set InitialResourceState to D3D12_RESOURCE_STATE_COPY_DEST.

-param pOptimizedClearValue [in, optional]

Type: const D3D12_CLEAR_VALUE*

Specifies a D3D12_CLEAR_VALUE structure that describes the default value for a clear color.

pOptimizedClearValue specifies a value for which clear operations are most optimal. When the created resource is a texture with either the D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET or D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL flags, you should choose the value with which the clear operation will most commonly be called. You can call the clear operation with other values, but those operations won't be as efficient as when the value matches the one passed in to resource creation.

When you use D3D12_RESOURCE_DIMENSION_BUFFER, you must set pOptimizedClearValue to nullptr.

-param pProtectedSession [in, optional]

Type: ID3D12ProtectedResourceSession*

An optional pointer to an object that represents a session for content protection. If provided, this session indicates that the resource should be protected. You can obtain an ID3D12ProtectedResourceSession by calling ID3D12Device4::CreateProtectedResourceSession.

-param riidResource [in]

Type: REFIID

A reference to the globally unique identifier (GUID) of the resource interface to return in ppvResource.

While riidResource is most commonly the GUID of ID3D12Resource, it may be the GUID of any interface. If the resource object doesn't support the interface for this GUID, then creation fails with E_NOINTERFACE.

-param ppvResource [out, optional]

Type: void**

An optional pointer to a memory block that receives the requested interface pointer to the created resource object.

ppvResource can be nullptr, to enable capability testing. When ppvResource is nullptr, no object is created, and S_FALSE is returned when pDesc is valid.

-returns

Type: HRESULT

If the function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Return value Description
E_OUTOFMEMORY There is insufficient memory to create the resource.

See Direct3D 12 return codes for other possible return values.

-remarks

This method creates both a resource and a heap, such that the heap is big enough to contain the entire resource, and the resource is mapped to the heap. The created heap is known as an implicit heap, because the heap object can't be obtained by the application. Before releasing the final reference on the resource, your application must ensure that the GPU will no longer read nor write to this resource.

The implicit heap is made resident for GPU access before the method returns control to your application. Also see Residency.

The resource GPU VA mapping can't be changed. See ID3D12CommandQueue::UpdateTileMappings and Volume tiled resources.

This method may be called by multiple threads concurrently.

-see-also