다음을 통해 공유


ID3D12Device4::CreateCommittedResource1 메서드(d3d12.h)

힙이 전체 리소스를 포함할 만큼 크고 리소스가 힙에 매핑되도록 리소스와 암시적 힙(선택 사항)을 모두 만듭니다. 또한 코드 예제 는 ID3D12Device::CreateCommittedResource 를 참조하세요.

구문

HRESULT CreateCommittedResource1(
  [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, optional]  ID3D12ProtectedResourceSession *pProtectedSession,
  [in]            REFIID                         riidResource,
  [out, optional] void                           **ppvResource
);

매개 변수

[in] pHeapProperties

형식: const D3D12_HEAP_PROPERTIES*

리소스의 힙에 대한 속성을 제공하는 D3D12_HEAP_PROPERTIES 구조체에 대한 포인터입니다.

[in] HeapFlags

형식: D3D12_HEAP_FLAGS

D3D12_HEAP_FLAGS 열거형 상수의 비트 OR 조합인 힙 옵션입니다.

[in] pDesc

형식: const D3D12_RESOURCE_DESC*

리소스를 설명하는 D3D12_RESOURCE_DESC 구조체에 대한 포인터입니다.

[in] InitialResourceState

형식: D3D12_RESOURCE_STATES

리소스의 초기 상태이며, D3D12_RESOURCE_STATES 열거형 상수의 비트 OR 조합입니다.

D3D12_HEAP_TYPE_UPLOAD 힙과 함께 리소스를 만들 때 InitialResourceStateD3D12_RESOURCE_STATE_GENERIC_READ 설정해야 합니다.

D3D12_HEAP_TYPE_READBACK 힙과 함께 리소스를 만들 때 InitialResourceStateD3D12_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 플래그가 있는 텍스처인 경우 clear 작업이 가장 일반적으로 호출되는 값을 선택해야 합니다. 다른 값으로 clear 연산을 호출할 수 있지만 해당 작업은 값이 리소스 만들기에 전달된 값과 일치하는 경우만큼 효율하지 않습니다.

D3D12_RESOURCE_DIMENSION_BUFFER 사용하는 경우 pOptimizedClearValuenullptr로 설정해야 합니다.

[in, optional] pProtectedSession

형식: ID3D12ProtectedResourceSession*

콘텐츠 보호를 위한 세션을 나타내는 개체에 대한 선택적 포인터입니다. 제공된 경우 이 세션은 리소스를 보호해야 임을 나타냅니다. ID3D12Device4::CreateProtectedResourceSession을 호출하여 ID3D12ProtectedResourceSession을 가져올 수 있습니다.

[in] riidResource

형식: REFIID

ppvResource에서 반환할 리소스 인터페이스의 GUID(Globally Unique Identifier)에 대한 참조입니다.

riidResource는 가장 일반적으로 ID3D12ResourceGUID이지만 모든 인터페이스의 GUID일 수 있습니다. 리소스 개체가 이 GUID에 대한 인터페이스를 지원하지 않으면 E_NOINTERFACE 함께 생성이 실패합니다.

[out, optional] ppvResource

형식: void**

생성된 리소스 개체에 대한 요청된 인터페이스 포인터를 수신하는 메모리 블록에 대한 선택적 포인터입니다.

ppvResource는nullptr기능 테스트를 사용하도록 설정하는 일 수 있습니다. ppvResource가 이면 nullptr개체가 만들어지지 않으며 pDesc가 유효하면 S_FALSE 반환됩니다.

반환 값

형식: HRESULT

함수가 성공하면 S_OK를 반환합니다. 그렇지 않으면 HRESULT오류 코드를 반환합니다.

반환 값 Description
E_OUTOFMEMORY 리소스를 만들 메모리가 부족합니다.

다른 가능한 반환 값은 Direct3D 12 반환 코드를 참조하세요.

설명

이 메서드는 힙이 전체 리소스를 포함할 만큼 크고 리소스가 힙에 매핑되도록 리소스와 힙을 모두 만듭니다. 만든 힙은 애플리케이션에서 힙 개체를 가져올 수 없으므로 암시적 힙이라고 합니다. 리소스에 대한 최종 참조를 해제하기 전에 애플리케이션은 GPU가 더 이상 이 리소스를 읽거나 쓰지 않도록 해야 합니다.

암시적 힙은 메서드가 애플리케이션에 컨트롤을 반환하기 전에 GPU 액세스를 위해 상주합니다. 상주도 참조하세요.

리소스 GPU VA 매핑은 변경할 수 없습니다. ID3D12CommandQueue::UpdateTileMappings볼륨 타일식 리소스를 참조하세요.

이 메서드는 여러 스레드에서 동시에 호출할 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
대상 플랫폼 Windows
헤더 d3d12.h
라이브러리 d3d12.lib
DLL d3d12.dll