vkd3d 1.2 viene fornito con miglioramenti della compatibilità, ombreggiatura e altro

El proyecto Wine ha rilasciato una nuova versione del pacchetto vkd3d 1.2 con un'implementazione di Direct3D 12 che funziona traducendo le chiamate all'API grafica Vulkan.

Questa nuova versione di vkd3d 1.2 contiene vari miglioramenti, ma tra i principali che spiccano sono il disponibilità di libvkd3d-shader come libreria pubblica, la supporto shader tassellazione, così come il supporto di output del flusso.

Il pacchettoe include librerie libvkd3d con implementazioni Direct3D 12, libvkd3d-shader con traduttore shader modello 4 e 5 e libvkd3d-utils con funzioni per semplificare la migrazione delle applicazioni Direct3D 12, oltre a un set di demo, incluso il port glxgears a Direct3D 12. Il codice del progetto è distribuito con licenza LGPLv2.1.

La biblioteca libvkd3d supporta la maggior parte delle funzionalità di Direct3D 12, inclusi grafici e funzioni di calcolo, elenchi di comandi e code, descrittori e descrittori di heap, firme radice, accesso non ordinato, campionatori, firme di comando, costanti radice, rappresentazione indiretta e così via.

libvkd3d-shader implementa la traduzione del byte code 4 e 5 dei modelli di ombreggiatura nella rappresentazione intermedia SPIR-V. Sono supportati vertici, pixel, tassellazione, shader di geometria semplice e computazionale, serializzazione della firma radice e deserializzazione.

Le istruzioni dello shader includono operazioni aritmetiche, atomiche e bit per bit, controllo del flusso di dati e operatori di confronto, istruzioni di campionamento, raccolta e caricamento, operazioni di accesso non ordinato (UAV, vista di accesso non ordinato).

Nell'attuale fase di sviluppo, non tutte le chiamate a Direct3D 12 sono implementate ei test sono stati effettuati principalmente su una serie di applicazioni demo. La versione non include funzionalità in fase di sviluppo come il supporto per shader di geometrie complesse e tassellazione, nonché una serie di miglioramenti relativi ai metodi e agli shader di base di Direct3D 12. Queste funzionalità saranno offerte in una versione futura.

Principali novità di Vkd3d 1.2

Tra le modifiche più importanti che vengono presentate nella nuova versione, è il disponibilità della libreria libvkd3d-shader per l'utilizzo in progetti di terze parti, dal Sono state aggiunte varie funzioni di Direct3D 12, come:

  • Multi-campionamento.
  • Risorse riservate.
  • Velocità di trasmissione dati dell'istanza.
  • API "Dati privati" per tutte le interfacce.
  • Mappature dei componenti di visualizzazione delle risorse shader.
  • Estensione VK_KHR_draw_indirect_count.
  • Predicato / rappresentazione condizionale.
  • Rendering di profondità senza pixel shader.
  • Ritaglio di profondità. Ciò richiede l'estensione VK_EXT_depth_clip_enable.
  • Elimina il rasterizzatore.
  • Doppia sorgente di miscelazione.
  • Mappatura delle risorse collocate.
  • I metodi ID3D12Resource ReadFromSubresource () e WriteToSubresource ().
  • Accesso simultaneo a risorse multi-coda.
  • Viste nulle. Ovvero, visualizzazioni senza una risorsa sottostante.
  • Diverse altre richieste di supporto alle funzionalità.

Oltre a questo, Viene inoltre evidenziato il supporto aggiunto per la conversione, la serializzazione e la deserializzazione delle firme root (vkd3d_serialize_versioned_root_signature () e vkd3d_create_versioned_root_signature_deserializer (), così come il supporto per lo streaming di output.

Un altro cambiamento che spicca è il implementazione della variabile d'ambiente: VKD3D_CONFIG per impostare le opzioni per modificare il comportamento di libvkd3d e VKD3D_VULKAN_DEVICE per sovrascrivere il dispositivo per l'API Vulkan.

a parte quello aggiunto supporto per le istruzioni di ombreggiatura bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos e supporto preliminare per shader modello 5.1.

E supporta anche gli ambienti di destinazione OpenGL SPIR-V. Ciò consente a SPIR-V prodotto da libvkd3d-shader di essere utilizzato con GL_ARB_gl_spirv. Ciò include il supporto per contatori atomici OpenGL e campionatori combinati.

Infine se vuoi saperne di più su questa nuova versione, puoi controllare l'elenco completo delle modifiche nel seguente link

Come installare vkd3d su Linux?

Per coloro che sono interessati a poter installare vkd3d sul proprio sistema, dovrebbero ottenere il codice sorgente e procedere con la compilazione, anche se per motivi pratici o per i neofiti, possono provare questa libreria senza troppi sforzi. Per questo, devono solo installare lutris e all'interno delle sue configurazioni.

Per quanto riguarda chi è interessato alla compilazione, deve ottenere il codice 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"

Infine, i livelli Vulkan devono essere abilitati:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.