Noile versiuni de Wine 11.10 și Vkd3d 2.0

A fost publicată o versiune experimentală a implementării open source a API-ului Win32, Wine 11.10. De la lansarea versiunii 11.9, 17 de rapoarte de eroare au fost închise și au fost făcute 248 modificări.

Cele mai importante schimbari:

  • Pachetul Vkd3d încorporat cu implementarea Direct3D 12 a fost actualizat la versiunea 2.0.
  • Se propune un suport revizuit pentru limbajul XPath, implementat fără a utiliza biblioteca libxml2.
  • Compatibilitate îmbunătățită cu VBScript.
  • La ntdll au fost adăugate elemente de tip stub pentru API-ul ALPC (Advanced Local Procedure Call): NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() și NtAlpcImpersonateClientOfPort().
  • Suport Bluetooth îmbunătățit, metode adăugate BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid și IGattDeviceService::get_AttributeHandle.
  • Implementările d3dx10 și d3dx11 acceptă acum încărcarea fișierelor DDS cu tablouri de texturi. Funcția D3DX10LoadTextureFromTexture() acceptă acum texturi 3D, texturi cu suport LOD și generarea de MIPmap.
  • DLL-ul win32u implementează funcțiile NtUserGetMessagePos() și NtUserSetMessageExtraInfo().
  • Rapoarte de erori închise legate de funcționarea aplicațiilor: IrfanView, Kodak EasyShare, Git pentru Windows, Creator de arbori genealogici 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3
    TrackChecker.
  • Raportări de erori închise legate de funcționarea jocurilor: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.

Proiectul Wine a lansat și pachetul vkd3d 2.0, o implementare Direct3D 12 care funcționează prin traducerea apelurilor către API-ul grafic Vulkan. Pachetul include bibliotecile libvkd3d cu implementări Direct3D 12, libvkd3d-shader cu un traducător de modele shader și libvkd3d-utils cu funcții pentru simplificarea portării aplicațiilor Direct3D 12, precum și un set de demonstrații, inclusiv o portare a glxgears la Direct3D 12. Codul proiectului este distribuit sub licența LGPLv2.1.

Biblioteca libvkd3d acceptă majoritatea caracteristicilor Direct3D 12, inclusiv grafică și facilități de calcul, cozi și liste de comenzi, descriptori și descriptori heap, semnături rădăcină, acces neordonat, samplere, semnături de comandă, constante rădăcină, randare indirectă, metode Clear*() și Copy*(). libvkd3d-shader implementează traducerea bytecode-ului modelului shader în reprezentarea intermediară SPIR-V. Sunt acceptate shadere de vertex, pixel, tessellation, compute și geometrie simplă, serializarea și deserializarea semnăturii rădăcină. Instrucțiunile shader includ operații aritmetice, atomice și pe biți, operatori de comparare și control al fluxului de date, instrucțiuni de eșantionare, colectare și încărcare și operații de vizualizare cu acces neordonat (UAV).

În noua versiune de vkd3d:

  • Implementarea limbajului shader HLSL include acum suport inițial pentru bucle pentru modele de shadere cu 2-3, capacitatea de a scrie în memoria partajată structurată pentru un grup de fire de execuție, implementarea funcțiilor încorporate tex3Dbias(), tex3Dlod() și texCUBElod() și suport pentru semantica SV_ClipDistance, SV_CullDistance și SV_StencilRef pentru procesarea intrărilor și ieșirilor de la shadere.
  • Compilatorul shader HLSL elimină acum automat calculele duplicate, permite evaluarea în timpul compilării a expresiilor precum x % y cu valori predeterminate și îmbunătățește alocarea temporară a registrelor. În conformitate cu specificația HLSL, domeniul de aplicare al variabilelor din buclele „for” a fost extins (variabila rămâne accesibilă după finalizarea buclei). La analizarea numerelor fracționare, luarea în considerare a setărilor regionale a fost întreruptă (punctul este acum utilizat întotdeauna ca separator).
  • Suport îmbunătățit pentru vechiul format de shader binar Direct3D. Instrucțiuni implementate: m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth.
    texreg2ar, texreg2gb, texreg2rgb. S-a adăugat suport pentru modificatorii „_dz”, „_db”, „_dw” și „_da”, care pot fi utilizați cu instrucțiunile texcrd și texld. S-a adăugat suport pentru registrele „vFace” și „vPos” pentru lucrul cu pixel shadere.
  • În DXIL (Direct3D Intermediate Language), capacitatea de a utiliza pointeri către date declarate ulterior este implementată în cod în operațiunile de încărcare, salvare, modificare atomică și comparare.
  • Suportul pentru constante încorporate pe 16 biți și semnalizatoarele „64UAV” a fost adăugat la asamblatorul de shadere Direct3D.
    „ROV-uri”,
    „UAVÎncărcareFormateSuplimentare”,
    „UAV-uri la fiecare etapă”
    „toate resursele legate”,
    „activați extensiile Shader11_1”,
    „int64Ops”,
    „Precizie redusă nativă”,
    „șablonRef”,
    „viewportAndRTArrayIndex” și
    „waveOps”.
  • Opțiuni de compilare shader implementate: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 și VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster