Den grafiske standard Vulkan 1.2 offentliggjort

Khronos-konsortiet, der arbejder med udviklingen af grafiske standarder,
udgav specifikationen Vulkan 1.2, der definerer API'en til adgang til grafik- og beregningskapaciteter fra GPU'en. Den nye specifikation har inkluderet to års opsamlede rettelser og udvidelsen. Drivere med støtte for den nye version af Vulkan er allerede har udgivet intel, AMD, ARM, Imagination Technologies og NVIDIA. I Mesa er Vulkan 1.2-støtte tilbudt til drivere RADV (AMD-kort) og ANV (Intel). Støtte for Vulkan 1.2 er også implementeret i debuggeren RenderDoc 1.6, LunarG Vulkan SDK og sæt af eksempler Vulkan-Samples.

Vigtige nyheder:

  • Er blevet klar til udbredt anvendelse implementeringen af shadersprog HLSL, udviklet af Microsoft til DirectX. Støtte for HLSL i Vulkan muliggør brug af de samme HLSL-shaders i applikationer baseret på Vulkan og DirectX, samt forenkler oversættelsen fra HLSL til SPIR-V. Det anbefales at bruge den standardkompilator,
    DXC, som blev åbnet af Microsoft i 2017 og er baseret på LLVM-teknologi. Vulkan-støtte implementeres gennem en separat backend, der tillader oversættelse af HLSL til det mellemliggende shader-repræsentation SPIR-V. Implementeringen dækker ikke kun alle indbyggede funktioner
    HLSL, herunder matematiske typer, kontrolstrømme, funktioner, mængder, ressource typer, navnerum, Shader Model 6.2, strukturer og metoder, men også muligheden for at bruge Vulkan-specifikke udvidelser, såsom VKRay fra NVIDIA. I HLSL over Vulkan er det lykkedes at få spil som Destiny 2, Red Dead Redemption II, Assassin’s Creed Odyssey og Tomb Raider til at fungere.

    Den grafiske standard Vulkan 1.2 offentliggjort
  • Den specifikation er blevet opdateret SPIR-V 1.5, der definerer en universel mellemrepræsentation for shaderne på tværs af platforme, der kan anvendes til både grafik og parallell beregning.
    SPIR-V indebærer en separat fase til kompilering af shaders til det mellemliggende repræsentation, hvilket muliggør skabelse af front-end til forskellige højniveausprog. Baseret på forskellige højniveausimplementeringer genereres en enkelt mellem kode, der kan bruges af drivere for OpenGL, Vulkan og OpenCL uden brug af indbyggede shader-kompilatorer.

    Den grafiske standard Vulkan 1.2 offentliggjort
  • Hoved-API'en Vulkan inkluderer 23 udvidelser, der har øget ydeevnen, forbedret kvaliteten af visualiseringen og forenklet udviklingen. Blandt de tilføjede udvidelser:
    • Kronologiske semaforer (Timeline semaphore), der standardiserer synkronisering mellem værten og enhedens køer (gør det muligt at bruge en enkelt primitiv til alt-til-alt synkronisering mellem enheden og værten, uden at bruge separate primitive VkFence og VkSemaphore). De nye semaforer præsenteres som monotont stigende 64-bit værdier, der kan spores og opdateres i flere tråde.
      Den grafiske standard Vulkan 1.2 offentliggjort
    • Mulighed for at bruge numeriske typer med reduceret præcision i shaderne;
    • Kompatibel med HLSL version af hukommelseslayout;
    • Uafhængige ressourcer (bindless), der fjerner begrænsningen på antallet af ressourcer tilgængelige for shaderne ved at bruge et delt virtuelt rum af systemhukommelse og GPU-hukommelse;
    • Formel hukommelsesmodel, der definerer hvordan parallelt kørende tråde kan tilgå delte data og synkroniseringsoperationer;
    • Indeksering af beskrivelser til genanvendelse af layoutbeskrivelser i flere shaders;
    • Buffer-referencer.

    Fuldliste over tilføjede udvidelser:

  • Tilføjet over 50 nye strukturer og 13 funktioner;
  • Korte versioner af specifikationen er udarbejdet for typiske målplatforme, der forenkler arbejdet på platforme, som endnu ikke understøtter alle udvidelser, og som gør det muligt at undvære selektiv aktivering af grundlæggende Vulkan API-funktioner.
  • Arbejdet med projektet for at sikre bærbarhed mellem andre grafiske API'er er fortsat. For eksempel er der i Vulkan foreslået udvidelser, der muliggør at oversætte OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) og DirectX (DXVK, vkd3d) via Vulkan API'et, og omvendt for at sikre Vulkan-funktionalitet på platforme uden støtte til dets native understøttelse (gfx-rs og Ashes til drift oven på OpenGL og DirectX, MoltenVK og gfx-rs til drift oven på Metal).
    For at forbedre kompatibiliteten med DirectX og HLSL er der tilføjet udvidelser,
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, og specifikke HLSL-funktioner er blevet implementeret i SPIR-V.

I fremtiden planlægges udviklingen af udvidelser til maskinlæring, ray tracing, video kodning og dekodning, support til VRS (variable-rate shading) og Mesh-shaders.

Lad os minde om, at Vulkan API er bemærkelsesværdig forkorter driverne betydeligt, flytter genereringen af GPU-kommandoer til applikationen, muliggør tilslutning af fejlfindingslag, forener API'er for forskellige platforme og anvender forudkompilerede mellemrepræsentationer af koden til udførelse på GPU-siden. For at sikre høj ydeevne og forudsigelighed giver Vulkan applikationer værktøjer til direkte kontrol over GPU-operationer og indbygget støtte til multitrådet behandling af GPU-kommandoer, hvilket minimerer de omkostninger, der pålægges af driveren, og de muligheder, der implementeres på driverniveau, bliver betydeligt simplere og mere forudsigelige. For eksempel er operationer såsom hukommelsesstyring og fejlbehandling, der implementeres i OpenGL på driverniveau, i Vulkan flyttet til applikationsniveauet.

Vulkan dækker alle tilgængelige platforme og tilbyder et enkelt API til desktop-, mobil- og websystemer, hvilket muliggør brugen af et fælles API for forskellige grafiske processorer og anvendelsesområder. Takket være Vulkan's lagdelte arkitektur, der indebærer oprettelse af værktøjer, der fungerer med enhver GPU, kan hardwareproducenter anvende standardværktøjer til kodeverifikation, fejlfinding og profilering under udvikling. Der tilbydes en ny bærbar mellemrepræsentation for shaders, SPIR-V, baseret på LLVM og bruger fælles grundteknologier med OpenCL. Til håndtering af enheder og skærme i Vulkan tilbydes WSI (Window System Integration) interface, der løser omtrent de samme opgaver som EGL i OpenGL ES. WSI support er tilgængelig fra starten i Wayland — alle applikationer, der anvender Vulkan, kan køre i miljøet med uændrede Wayland-servere. Muligheden for at arbejde gennem WSI er ligeledes sikret for Android, X11 (med DRI3), Windows, Tizen, macOS og iOS.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster