Método ID3D11DeviceContext2::ResizeTilePool (d3d11_2.h)

Cambia el tamaño de un grupo de iconos.

Sintaxis

HRESULT ResizeTilePool(
  [in] ID3D11Buffer *pTilePool,
  [in] UINT64       NewSizeInBytes
);

Parámetros

[in] pTilePool

Tipo: ID3D11Buffer*

Puntero a un identificador ID3D11Buffer para que el grupo de iconos cambie el tamaño.

[in] NewSizeInBytes

Tipo: UINT64

Nuevo tamaño en bytes del grupo de iconos. El tamaño debe ser un múltiplo de 64 KB o 0.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve una de las siguientes opciones:

  • Devuelve E_INVALIDARG si el nuevo tamaño del grupo de iconos no es un múltiplo de 64 KB o 0.
  • Devuelve E_OUTOFMEMORY si la llamada da como resultado que el controlador tenga que asignar espacio para las nuevas asignaciones de tablas de páginas, pero se agote la memoria.
  • Devuelve DXGI_ERROR_DEVICE_REMOVED si la tarjeta de vídeo se ha quitado físicamente del sistema o se ha producido una actualización de controladores para la tarjeta de vídeo.
Para E_INVALIDARG o E_OUTOFMEMORY, el grupo de iconos existente permanece sin cambios, lo que incluye las asignaciones existentes.

Comentarios

ResizeTilePool aumenta o disminuye el tamaño del grupo de iconos en función de si la aplicación necesita más o menos espacio de trabajo para los recursos en mosaico asignados a él. Una aplicación puede asignar grupos de iconos adicionales para nuevos recursos en mosaico, pero si un único recurso en mosaico necesita más espacio que el disponible inicialmente en su grupo de iconos, la aplicación puede aumentar el tamaño del grupo de iconos del recurso. Un recurso en mosaico no puede tener asignaciones en varios grupos de iconos simultáneamente.

Al aumentar el tamaño de un grupo de mosaicos, se agregan iconos adicionales al final del grupo de iconos a través de una o varias asignaciones nuevas por parte del controlador; la aplicación no puede detectar el desglose en las nuevas asignaciones. La memoria existente en el grupo de iconos se deja intacta y las asignaciones de recursos en mosaico existentes en esa memoria permanecen intactas.

Cuando se reduce el tamaño de un grupo de iconos, los iconos se quitan del final (esto se permite incluso por debajo del tamaño de asignación inicial, hasta 0). Esto significa que no se pueden realizar nuevas asignaciones más allá del nuevo tamaño. Sin embargo, las asignaciones existentes más allá del final del nuevo tamaño permanecen intactas y utilizables. La memoria se mantiene activa siempre que permanezcan las asignaciones a cualquier parte de las asignaciones que se usan para la memoria del grupo de iconos. Si después de disminuir, se ha mantenido activa alguna memoria porque las asignaciones de iconos apuntan a ella y el grupo de iconos vuelve a aumentar (por cualquier cantidad), la memoria existente se reutiliza primero antes de que se produzcan asignaciones adicionales para atender el tamaño del aumento.

Para poder guardar memoria, una aplicación no solo tiene que reducir un grupo de iconos, sino también quitar y reasignar las asignaciones existentes más allá del final del nuevo tamaño de grupo de iconos más pequeño.

El acto de disminuir (y quitar asignaciones) no produce necesariamente ahorros inmediatos de memoria. Liberar memoria depende de la granularidad de las asignaciones subyacentes del controlador para el grupo de iconos. Cuando una disminución en el tamaño de un grupo de mosaicos es suficiente para que una asignación de controladores no se usa, el controlador puede liberar la asignación. Si se ha aumentado un grupo de iconos y, a continuación, disminuye a tamaños anteriores (y quita y reasigna las asignaciones de mosaicos correspondientemente), lo más probable es que produzca ahorros de memoria. Sin embargo, este escenario no está garantizado en caso de que los tamaños no se alineen exactamente con los tamaños de asignación subyacentes elegidos por el controlador.

Para obtener más información sobre los recursos en mosaico, consulte Recursos en mosaico.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d3d11_2.h
Library D3D11.lib

Consulte también

ID3D11DeviceContext2