Después de un año y medio de desarrollo, el proyecto Wine dio a conocer el lanzamiento de la nueva versión del paquete «vkd3d 1.3″ con una implementación de Direct3D 12 que funciona a través de la traducción de llamadas a la API de gráficos Vulkan.
Esta versión contiene diversas mejoras y de los cuales en esta nueva versión los aspectos más destacados son el soporte inicial de compilación HLSL, asi como tambien la compatibilidad con la matriz de descriptores Shader Model 5.1, el soporte para desmontar sombreadores de Direct3D, entre otras cosas más.
Para quienes desconocen del paquete, deben saber que incluye bibliotecas libvkd3d con implementaciones de Direct3D 12, libvkd3d-shader con traductor de shader modelo 4 y 5 y libvkd3d-utils con funciones para simplificar la migración de aplicaciones Direct3D 12, así como un conjunto de demostraciones, incluido el puerto glxgears a Direct3D 12. El código del proyecto se distribuye licenciado bajo LGPLv2.1.
La biblioteca libvkd3d admite la mayoría de las funciones de Direct3D 12, incluidas las funciones de gráficos y computación, listas y colas de comandos, descriptores y descriptores de montón, firmas root, acceso no ordenado, muestreadores, firmas de comandos, constantes root, representación indirecta, etc.
Libvkd3d-shader implementa la traducción del código de bytes 4 y 5 de los modelos de sombreado en la representación intermedia SPIR-V. Se admiten vértices, píxeles, teselación, sombreadores de geometría simple y computacional, serialización de firmas root y deserialización.
Las instrucciones del sombreador incluyen operaciones aritméticas, atómicas y bit a bit, operadores de control de flujo de datos y comparación, instrucciones de muestreo, recopilación y carga, operaciones de acceso no ordenado (UAV, Vista de acceso no ordenado).
En la etapa actual de desarrollo, no todas las llamadas a Direct3D 12 están implementadas y las pruebas se llevaron a cabo principalmente en un conjunto de aplicaciones de demostración.
Principales novedades de Vkd3d 1.3
En esta nueva versión que se presenta de vkd3d 1.3 se destaca que se agregó el soporte inicial para compilar y pre procesar sombreadores en HLSL (lenguaje de sombreado de alto nivel), el cual es proporcionado desde la versión de DirectX 9.0.
Otro de los cambios que se destaca de esta nueva versión es la compatibilidad con operaciones de coma flotante de doble precisión en sombreadores, asi como tambien el direccionamiento indirecto para sombreadores de teselación, la exportación de plantillas desde sombreadores, el modificador de sombreado «preciso» y las barreras globales para recursos en memoria.
Tambien podremos encontrar que se implementó la capacidad de desensamblar los sombreadores de Direct3D desde el código de bytes hasta la representación del ensamblador, ademas de que se agregó compatibilidad para analizar el antiguo formato de código de bytes de Direct3D utilizado en los modelos de sombreado de Direct3D 1, 2 y 3.
libvkd3d agregó funciones de Direct3D 12, como firmas root, contadores de búsqueda desordenados, booleanos de combinación de salida, modo de direccionamiento de textura mirror_once y se agregó la estructura vkd3d_host_time_domain_info.
De los demás cambios que se destacan de esta nueva versión:
- vkd3d_shader_preprocess_info amplía la estructura vkd3d_shader_compile_info, y se puede usar para especificar parámetros de preprocesamiento como definiciones de macros de preprocesador.
- vkd3d_shader_hlsl_source_info amplía la estructura vkd3d_shader_compile_info, y se puede usar para especificar HLSL y parámetros de compilación como el perfil de destino y el punto de entrada.
- Modelos de enlace Direct3D 12 y Vulkan
- VKD3D_SHADER_COMPILE_OPTION_API_VERSION puede usarse para especificar la versión de la API libvkd3d-shader la aplicación está apuntando. Si no se especifica, se utilizará VKD3D_SHADER_API_VERSION_1_2.
- vkd3d-compiler utilizará de forma predeterminada la salida en color si puede determinar que el
la salida es una teleimpresora con capacidad de color. - Se agregó soporte para matrices de descriptores definidas en Shader Model 5.1.
Finalmente si quieres conocer más al respecto sobre esta nueva versión, puedes consultar la lista completa de cambios en el siguiente enlace.
¿Cómo instalar vkd3d en Linux?
Para los que estén interesados en poder instalar vkd3d en su sistema, deberán de obtener el código fuente y proceder a realizar la compilación, aunque para fines prácticos o para aquellos novatos, pueden probar esta biblioteca sin mucho esfuerzo. Para ello solamente deben instalar lutris y dentro de las configuraciones de este.
En cuanto a los interesados en la compilación deben obtener el código con:
git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"
Finalmente se deberán habilitar las capas de Vulkan:
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug
from Desde Linux https://ift.tt/GIKm3Sk
via IFTTT
No hay comentarios.:
Publicar un comentario