Nové verze Wine 11.10 a Vkd3d 2.0

Byla zveřejněna experimentální verze otevřené implementace Win32 API — Wine 11.10. Od vydání 11.9 bylo uzavřeno 17 chybových zpráv a provedeno 248 změn.

Nejdůležitější změny:

  • Vestavěný balíček Vkd3d s implementací Direct3D 12 byl aktualizován na verzi 2.0.
  • Byla navržena přepracovaná podpora jazyka XPath, implementovaná bez použití knihovny libxml2.
  • Byla zlepšena kompatibilita s VBScript.
  • Do ntdll byly přidány zástupné znaky pro API ALPC (Advanced Local Procedure Call): NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() a NtAlpcImpersonateClientOfPort().
  • Byla vylepšena podpora Bluetooth, přidány metody BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid a IGattDeviceService::get_AttributeHandle.
  • Do implementace d3dx10 a d3dx11 byla přidána možnost načítání DDS souborů s texturovými poli. Do funkce D3DX10LoadTextureFromTexture() byla přidána podpora 3D textur, textur s podporou úrovně detailu a generování MIP úrovní (MipMap).
  • V DLL win32u byly implementovány funkce NtUserGetMessagePos() a NtUserSetMessageExtraInfo().
  • Byly uzavřeny chybové zprávy týkající se funkcí aplikací: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3,
    TrackChecker.
  • Byly uzavřeny chybové zprávy týkající se funkcí her: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.

Projekt Wine také zveřejnil vydání balíčku vkd3d 2.0 s implementací Direct3D 12, fungující prostřednictvím převodu volání do grafického API Vulkan. Balíček obsahuje knihovny libvkd3d s implementací Direct3D 12, libvkd3d-shader s překladačem modelů shaderů a libvkd3d-utils s funkcemi pro zjednodušení portování aplikací Direct3D 12, jakož i sadu demonstračních příkladů, včetně portu glxgears na Direct3D 12. Kód projektu je distribuován pod licencí LGPLv2.1.

Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně prostředků pro grafiku a výpočty, front a seznamů příkazů, popisovačů a haldových popisovačů, kořenových podpisů, neuspořádaného přístupu, samplerů, podpisů příkazů, kořenových konstant, nepřímého vykreslování, metod Clear*() a Copy*(). V libvkd3d-shader je implementován překlad bajtkódu modelů shaderů do mezilehlé reprezentace SPIR-V. Podporovány jsou vrcholové, pixelové, tesselační, výpočetní a prosté geometrické shadery, serializace a deserializace kořenového podpisu. Z instrukcí shaderů jsou implementovány aritmetické, atomové a bitové operace, operátory porovnání a řízení toku dat, instrukce sample, gather a load, operace neuspořádaného přístupu (UAV, Unordered Access View).

V nové verzi vkd3d:

  • Do implementace jazyka shaderů HLSL byla přidána počáteční podpora cyklů pro 2-3 modely shaderů, byla umožněna zápis do strukturované sdílené paměti skupiny vláken, byly implementovány vestavěné funkce tex3Dbias(), tex3Dlod() a texCUBElod(), a byla zajištěna podpora sémantik SV_ClipDistance, SV_CullDistance a SV_StencilRef pro zpracování vstupu a výstupu od shaderů.
  • V kompilátoru shaderů HLSL bylo implementováno automatické odstranění duplicitních výpočtů, bylo zajištěno vyhodnocení výrazů jako x % y s předem známými hodnotami během kompilace a vylepšeno rozdělení dočasných registrů. V souladu s požadavky specifikace HLSL byla rozšířena viditelnost proměnných v cyklech „for“ (proměnná zůstává dostupná i po ukončení cyklu). Při parsování desetinných čísel byl zastaven účet podle místní konfigurace (jako oddělovač se nyní vždy používá tečka).
  • Byla vylepšena podpora starého binárního formátu shaderů Direct3D. Byl implementován instrukce m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth,
    texreg2ar, texreg2gb, texreg2rgb. Byla přidána podpora modifikátorů „_dz“, „_db“, „_dw“ a „_da“, které lze používat s instrukcemi texcrd a texld. Byla přidána podpora registrů „vFace“ a „vPos“ pro práci s pixelovými shadery.
  • V DXIL (Direct3D Intermediate Language) v kódu, v operacích načítání, ukládání, atomických změnách a porovnání byla implementována možnost používání ukazatelů na data, která byla deklarována později.
  • Do assembleru shaderů Direct3D byla přidána podpora 16bitových vestavěných konstant a také vlajek ‘64UAVs’,
    ‘ROVs’,
    ‘UAVLoadAdditionalFormats’,
    ‘UAVsAtEveryStage’,
    ‘allResourcesBound’,
    ‘enable11_1ShaderExtensions’,
    ‘int64Ops’,
    ‘nativeLowPrecision’,
    ‘stencilRef’,
    ‘viewportAndRTArrayIndex’ a
    ‘waveOps’.
  • Byly implementovány možnosti kompilace shaderů: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 a VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster