La norme graphique Vulkan 1.4 a été publiée

Après presque trois ans de travail, le consortium Khronos, chargé de l'élaboration des normes graphiques, a publié la spécification Vulkan 1.4, définissant l'API pour accéder aux capacités graphiques et de calcul des GPU. La nouvelle spécification intègre les extensions accumulées, qui étaient auparavant considérées comme optionnelles, et propose de nouvelles fonctionnalités tout en augmentant les exigences minimales en matière de matériel. L'outil Vulkan SDK est prévu pour être publié en janvier 2025.

Les produits prenant en charge Vulkan 1.4 sont en préparation par les entreprises AMD, Arm, Imagination, Intel, NVIDIA, Qualcomm et Samsung. Les pilotes Open Source pour les GPU AMD (radv), Apple M1/M2 (honeykrisp), Intel (anv), NVIDIA (nvk) et Qualcomm (tu), développés par le projet Mesa, ont déjà réussi tous les tests de compatibilité avec Vulkan 1.4 issus du CTS (Khronos Conformance Test Suite) et sont inclus dans la liste des pilotes certifiés. La liste inclut également les pilotes Samsung et Qualcomm pour la plateforme Android, ainsi que les pilotes pour les GPU PowerVR D-Series DXT* de l'entreprise Imagination Technologies et les pilotes propriétaires NVIDIA.

Principales nouveautés :

  • Le support du mécanisme « Streaming Transfers » a été ajouté, conçu pour assurer le transfert en continu de grandes quantités de données entre le système principal (hôte) et le dispositif graphique, sans interrompre le rendu ni ralentir ses performances. Ce mécanisme est mis en œuvre grâce à la nouvelle extension VK_EXT_host_image_copy, dont le support est optionnel.
  • Les fonctionnalités visant à améliorer les performances ont été reclassées comme obligatoires :
    • Push Descriptors — possibilité d'écrire des mises à jour de descripteurs directement dans le tampon de commandes, au lieu de créer des ensembles de descripteurs distincts et de les lier au tampon de commandes.
    • VK_KHR_dynamic_rendering_local_read — permet la lecture à partir de tampons imbriqués (attachments) et de ressources écrites par des shaders de fragment précédents, dans le cadre de passages de rendu dynamiques (render pass).
    • VK_EXT_scalar_block_layout — permet d'utiliser une structure de type C pour les blocs SPIR-V, où il est possible d'aligner des types non scalaires en fonction de la taille de leurs composants.
  • Les extensions VK_KHR_maintenance5 et VK_KHR_maintenance6 sont incluses, fournissant des commandes et des structures auxiliaires pour simplifier la gestion des ressources et des shaders.
  • Un support de rendu avec une résolution 8K (7680 x 4320 pixels) est garanti, utilisant jusqu'à 8 tampons de rendu indépendants.
  • Les extensions incluses sont :
    • VK_KHR_global_priority
    • VK_KHR_index_type_uint8
    • VK_KHR_line_rasterization
    • VK_KHR_load_store_op_none
    • VK_KHR_map_memory2
    • VK_KHR_push_descriptor
    • VK_KHR_shader_expect_assume
    • VK_KHR_shader_float_controls2
    • VK_KHR_shader_subgroup_rotate
    • VK_KHR_vertex_attribute_divisor
    • VK_EXT_pipeline_protected_access
    • VK_EXT_pipeline_robustness
  • De nombreuses fonctionnalités précédemment optionnelles sont devenues obligatoires.
  • Un grand nombre de nouvelles commandes et structures ont été ajoutées.

L'API Vulkan se distingue par la simplification radicale des pilotes, le transfert de la génération de commandes GPU vers l'application, la possibilité d'intégrer des couches de débogage, l'unification de l'API pour différentes plateformes et l'utilisation de représentations intermédiaires précompilées pour une exécution sur le GPU.

Pour garantir des performances élevées et prévisibles, Vulkan offre aux applications des moyens de contrôler directement les opérations GPU et une prise en charge intégrée du traitement multithread des commandes GPU, minimisant ainsi les frais généraux induits par le pilote, tandis que les fonctionnalités mises en œuvre côté pilote sont considérablement simplifiées et deviennent plus prévisibles. Par exemple, des opérations telles que la gestion de la mémoire et le traitement des erreurs, mises en œuvre dans OpenGL côté pilote, sont déplacées au niveau de l'application dans Vulkan.

Vulkan couvre toutes les plateformes disponibles et fournit une API unique pour les systèmes de bureau, mobiles et Web, permettant d'utiliser une API commune pour différents processeurs graphiques et domaines d'application. Grâce à l'architecture en couches de Vulkan, qui permet la création d'outils fonctionnant avec n'importe quel GPU, les fabricants de matériel peuvent utiliser des outils standard lors du développement pour la vérification de code, le débogage et le profilage.

Pour la création de shaders, une représentation intermédiaire portable SPIR-V est proposée, basée sur LLVM et utilisant des technologies communes avec OpenCL. Avec Vulkan, le langage de shaders HLSL utilisé dans DirectX peut également être utilisé par le biais de sa traduction en SPIR-V. Pour le contrôle des dispositifs et des écrans dans Vulkan, une interface WSI (Window System Integration) est proposée, résolvant à peu près les mêmes problèmes que EGL dans OpenGL ES. Le support WSI est disponible dès la sortie de la boîte dans Wayland - toutes les applications utilisant Vulkan peuvent être lancées dans un environnement non modifié. serveurs Wayland. La possibilité de fonctionnement via WSI est également assurée pour Android, X11 (avec DRI3), Windows, Tizen, macOS et iOS.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster