Método ID3D12Device8::CreatePlacedResource1 (d3d12.h)

Crea un recurso que se coloca en un montón específico. Los recursos colocados son los objetos de recursos más ligeros disponibles y son los más rápidos para crear y destruir.

La aplicación puede volver a usar la memoria de vídeo superponiendo varios recursos reservados y colocados de Direct3D en regiones del montón. El modelo de reutilización de memoria simple (descrito en Comentarios) existe para aclarar qué recurso superpuesto es válido en un momento dado. Para maximizar la compatibilidad con la herramienta de gráficos, no se admite la herencia de datos del modelo simple; No se admite la invalidación de iconos y subrecursos más específicos. Solo se produce una invalidación de recursos superpuesta completa.

Sintaxis

HRESULT CreatePlacedResource1(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_RESOURCE_STATES      InitialState,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  REFIID                     riid,
  void                       **ppvResource
);

Parámetros

pHeap

Tipo: [in] ID3D12Heap*

Puntero a la interfaz ID3D12Heap que representa el montón en el que se coloca el recurso.

HeapOffset

Tipo: UINT64

Desplazamiento, en bytes, al recurso. HeapOffset debe ser un múltiplo de la alineación del recurso y HeapOffset más el tamaño del recurso debe ser menor o igual que el tamaño del montón. GetResourceAllocationInfo debe usarse para comprender los tamaños de los recursos de textura.

pDesc

Tipo: [in] const D3D12_RESOURCE_DESC1*

Puntero a una estructura de D3D12_RESOURCE_DESC1 que describe el recurso, incluida una región mip.

InitialState

Tipo: D3D12_RESOURCE_STATES

Estado inicial del recurso, como una combinación bit a bit-OR de D3D12_RESOURCE_STATES constantes de enumeración.

Cuando se crea un recurso junto con un montón de D3D12_HEAP_TYPE_UPLOAD , InitialState debe ser D3D12_RESOURCE_STATE_GENERIC_READ. Cuando se crea un recurso junto con un montón de D3D12_HEAP_TYPE_READBACK , InitialState debe ser D3D12_RESOURCE_STATE_COPY_DEST.

pOptimizedClearValue

Tipo: [in, opcional] const D3D12_CLEAR_VALUE*

Especifica un D3D12_CLEAR_VALUE que describe el valor predeterminado de un color claro.

pOptimizedClearValue especifica un valor para el que las operaciones claras son más óptimas. Cuando el recurso creado es una textura con las marcas D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET o D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL , la aplicación debe elegir el valor con el que se llamará normalmente a la operación clear.

Se puede llamar a las operaciones clear con otros valores, pero esas operaciones no serán tan eficaces como cuando el valor coincida con el pasado a la creación de recursos.

pOptimizedClearValue debe ser NULL cuando se usa con D3D12_RESOURCE_DIMENSION_BUFFER.

riid

Tipo: REFIID

Identificador único global (GUID) de la interfaz de recursos. Se trata de un parámetro de entrada.

El REFIID, o GUID, de la interfaz al recurso se puede obtener mediante la __uuidof macro . Por ejemplo, __uuidof(ID3D12Resource) obtiene el GUID de la interfaz en un recurso. Aunque riid es, normalmente, el GUID de ID3D12Resource, puede ser cualquier GUID para cualquier interfaz. Si el objeto de recurso no admite la interfaz para este GUID, se produce un error en la creación con E_NOINTERFACE.

ppvResource

Tipo: [out, optional] void**

Puntero a un bloque de memoria que recibe un puntero al recurso. ppvResource puede ser NULL, para habilitar las pruebas de funcionalidad. Cuando ppvResource es NULL, no se creará ningún objeto y se devolverá S_FALSE cuando pResourceDesc y otros parámetros sean válidos.

Valor devuelto

Tipo: HRESULT

Este método devuelve E_OUTOFMEMORY si no hay memoria suficiente para crear el recurso. Consulta Códigos de retorno de Direct3D 12 para ver otros valores devueltos posibles.

Comentarios

Consulte ID3D12Device::CreatePlacedResource.

Requisitos

   
Cliente mínimo compatible compilación 20348 de Windows 10
Servidor mínimo compatible compilación 20348 de Windows 10
Encabezado d3d12.h
Library d3d12.lib
Archivo DLL d3d12.dll

Consulte también