Noen dager siden utgivelsen av den første stabile versjonen av prosjektet "D8VK 1.0" ble annonsert, som tilbyr en Direct3D 8 grafikk API implementering som fungerer gjennom oversettelse av Vulkan API-kall og lar deg bruke Wine eller Proton til å kjøre 3D-applikasjoner og spill utviklet for Windows på Linux som er knyttet til Direct3D 8 API.
Som mange av dere vet, i Linux har vi VKD3D-Proton for oversettelse av Direct3D 12 i Vulkan, i tillegg har vi også Steam Play som bruker DXVK til å implementere Direct3D 9/10/11 API-ene over Vulkan, men for den gamle implementering av Direct3D 8, var det ingenting konkret.
Det er derfor D8VK ble født, som er implementeringen av den gamle Microsoft Direct3D 8 API over Vulkan for å forbedre opplevelsen av eldre spill.
D8VK 1.0 er merket som den første utgivelsen av prosjektet, egnet for bruk og testet i hundrevis av spill. Sammenlignet med WineD3D- og d3d8to9-prosjektene, som bruker Direct3D 8 til OpenGL og Direct3D 9-oversettelse, demonstrerer D8VK-prosjektet bedre ytelse, stabilitet og kompatibilitet med spill.
For eksempel, når det ble testet på 3DMark 2001 SE-pakken, fikk D8VK-prosjektet 144660 poeng, kombinasjonen av d3d8to9 og dxvk – 118033, og WineD3D – 97134.
Lanseringen av D8VK 1.0 introduserer d3d8.dll(d3d9 er statisk koblet), samt en ny tilpasset batch-prosessor for visse spill med udefinert oppførsel.
I tillegg til dette fremheves det også at støtte overstyrende vertex shader-erklæring for spill med udefinert oppførsel og at toppunktbuffere nå kan lagres i det selvstyrte bassenget for å forbedre ytelsen og unngå skriveordreproblemer.
Det bemerkes også at kompileringsstøtte er implementert i MSVC, samt støtte for GetInfo-spørringer og statusblokktyper støttes nå.
Av andre endringer som skiller seg ut:
- Korrekt overflatebeskrivelsesstørrelser basert på format
- Tillat å bevare gjeldende Proton-installasjon
- Utallige spillspesifikke innstillinger og mindre funksjoner og justeringer
- Rettet en feil der CreateTexture ville prøve å pakke inn en null-tekstur
- Rettet tilbakebuffere som ikke ble bufret eller referert til å eie enheten
- Rettet teksturer, strømmer og indekser som ikke ble slettet ved omstart
- Fast plassering av Direct3DCreate8 i d3d8.def
- Fast referansetelling for gjengivelsesmål, dybdemaler og teksturer.
- Rettet null pixel shaders som ikke blir husket
- Rettet gjengivelsesmål og dybdemaler som ikke ble bufret
- Rettet feil hvis klient prøver å aktivere SWVP på en maskinvareenhet
- Faste enheter som ikke jailbreaker
- Rettet segfault på enhetsutgivelse med bundne teksturer
Til slutt, hvis du er interessert i å vite mer om det, kan du se detaljene I den følgende lenken.
Du bør vite at prosjektkoden er skrevet på C++-språket og distribueres under Zlib-lisensen. Kodebasen til DXVK-prosjektet med implementering av Direct3D 9, 10 og 11 på toppen av Vulkan ble brukt som grunnlag for utvikling.
Hvordan installerer jeg D8VK på Linux?
For de som er interessert i å kunne installere D8VK, bør de vite at implementeringen er ganske enkel og ikke krever mye. Bare åpne en terminal for å kunne få den nye versjonen. I den skriver vi inn følgende kommando:
git clone https://github.com/AlpyneDreams/d8vk.git
Eller hvis du foretrekker å laste ned fra nettleseren din (du må bare pakke ut filen og plassere deg selv i en terminal inne i mappen) kan du gjøre det ved å klikke i denne lenken.
Gjort dette, nå skal vi gå inn i katalogen med:
cd d8vk
Og vi fortsetter med å gjennomføre implementeringen av d8vk som tilfellet kan være. For å implementere det med Wine, må vi skrive inn følgende:
./setup_d3d8.sh install --no-proton
Eller i tilfelle du ønsker å implementere det med Proton, er kommandoen som må skrives følgende:
./setup_d3d8.sh install
Hvis du vil vite mer om bruken eller installasjonen for spesielle tilfeller, kan du konsultere følgende lenke.