Creación de objetos con multithreading

Use la interfaz ID3D11Device para crear recursos y objetos, use id3D11DeviceContext para su representación.

Estos son algunos ejemplos de cómo crear recursos:

Consideraciones de multithreading

La cantidad de simultaneidad de creación y representación de recursos que la aplicación puede lograr depende del nivel de compatibilidad con multithreading que implementa el controlador. Si el controlador admite las creaciones simultáneas, la aplicación debe tener muchos menos problemas de simultaneidad. Sin embargo, si el controlador no admite la creación simultánea de objetos, la cantidad de simultaneidad es extremadamente limitada. Para comprender la cantidad de compatibilidad disponible en un controlador, consulte el controlador para obtener el valor del miembro DriverConcurrentCreates de la estructura D3D11_FEATURE_DATA_THREADING . Para obtener más información sobre cómo comprobar la compatibilidad de controladores con multithreading, consulte Cómo: Comprobar la compatibilidad con controladores.

Las operaciones simultáneas no conducen necesariamente a un mejor rendimiento. Por ejemplo, la creación y carga de una textura suele estar limitada por el ancho de banda de memoria. Intentar crear y cargar varias texturas podría no ser más rápida que realizar una textura a la vez, incluso si esto deja inactivos varios núcleos de CPU. Sin embargo, la creación de varios sombreadores mediante varios subprocesos puede aumentar el rendimiento, ya que esta operación depende menos de los recursos del sistema, como el ancho de banda de memoria.

Cuando el controlador y el hardware gráfico admiten multithreading, normalmente puede inicializar recursos recién creados de forma más eficaz pasando un puntero a los datos iniciales en el parámetro pInitialData (por ejemplo, en una llamada al método ID3D11Device::CreateTexture2D ).

Multithreading