Nowe wersje Wine 11.10 i Vkd3d 2.0

Opublikowano eksperymentalną wersję otwartej implementacji Win32 API — Wine 11.10. Od wydania 11.9 zamknięto 17 raportów o błędach i wprowadzono 248 zmian.

Najważniejsze zmiany:

  • Wbudowany pakiet Vkd3d z implementacją Direct3D 12 został zaktualizowany do wersji 2.0.
  • Proponowane jest przeprojektowane wsparcie dla języka XPath, zaimplementowane bez użycia biblioteki libxml2.
  • Poprawiono zgodność z VBScript.
  • Do ntdll dodano stuby dla API ALPC (Advanced Local Procedure Call): NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() oraz NtAlpcImpersonateClientOfPort().
  • Poprawiono wsparcie Bluetooth, dodano metody BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid oraz IGattDeviceService::get_AttributeHandle.
  • W implementacji d3dx10 i d3dx11 dodano możliwość ładowania plików DDS z tablicami tekstur. Do funkcji D3DX10LoadTextureFromTexture() dodano wsparcie dla tekstur 3D, tekstur obsługujących poziomy szczegółowości oraz generowania poziomów MIP (MipMap).
  • W DLL win32u zaimplementowano funkcje NtUserGetMessagePos() i NtUserSetMessageExtraInfo().
  • Zamknięto raporty o błędach związane z działaniem aplikacji: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3, TrackChecker.
    Zamknięto raporty o błędach związane z działaniem gier: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.
  • Projekt Wine opublikował również wydanie pakietu vkd3d 2.0 z implementacją Direct3D 12, działającą poprzez translację wywołań do graficznego API Vulkan. Pakiet zawiera biblioteki libvkd3d z realizacją Direct3D 12, libvkd3d-shader z translatorem modeli shaderów oraz libvkd3d-utils z funkcjami upraszczającymi portowanie aplikacji Direct3D 12, a także zestaw przykładów demonstracyjnych, w tym port glxgears na Direct3D 12. Kod projektu jest udostępniany na licencji LGPLv2.1.

W implementacji języka shaderów HLSL dodano wstępną obsługę pętli dla modeli shaderów 2-3, umożliwiono zapis w strukturalnej pamięci współdzielonej grupy wątków, zaimplementowano wbudowane funkcje tex3Dbias(), tex3Dlod() i texCUBElod(), zapewniając wsparcie dla semantyk SV_ClipDistance, SV_CullDistance i SV_StencilRef do przetwarzania wejścia i wyjścia z shaderów.

Biblioteka libvkd3d obsługuje większość możliwości Direct3D 12, w tym narzędzia do grafiki i obliczeń, kolejki i listy poleceń, deskryptory i deskryptory sterty, sygnały korzenia, dostęp nieuporządkowany, Samplery, sygnały poleceń, stałe korzenia, niezależne renderowanie, metody Clear*() i Copy*(). W libvkd3d-shader zrealizowano translację kodu bajtowego modeli shaderów do pośredniego formatu SPIR-V. Obsługiwane są shadery wierzchołków, pikseli, tesselacyjne, obliczeniowe i proste shadery geometryczne, serializacja i deserializacja sygnału korzenia. Z instrukcji shaderowych zrealizowane zostały operacje arytmetyczne, atomowe i bitowe, operatory porównania i zarządzania przepływem danych, instrukcje sample, gather i load, operacje dostępu nieuporządkowanego (UAV, Unordered Access View).

W nowej wersji vkd3d:

  • W realizacji języka shaderów HLSL dodano początkowe wsparcie dla pętli dla modeli shaderów 2-3, pojawiła się możliwość zapisu w strukturalnej pamięci współdzielonej grupy wątków, zaimplementowano wbudowane funkcje tex3Dbias(), tex3Dlod() oraz texCUBElod(), zapewniając wsparcie dla semantyk SV_ClipDistance, SV_CullDistance oraz SV_StencilRef dla przetwarzania wejścia i wyjścia od shaderów.
  • W kompilatorze shaderów HLSL wprowadzono automatyczne usuwanie powtarzających się obliczeń, zapewniając obliczenie wyrażeń typu x % y na etapie kompilacji z wcześniej znanymi wartościami oraz poprawiono przydział rejestrów czasowych. Zgodnie z wymaganiami specyfikacji HLSL rozszerzono zakres widoczności zmiennych w pętlach „for” (zmienna pozostaje dostępna po zakończeniu pętli). Podczas analizowania liczb zmiennoprzecinkowych uwzględnianie lokalizacji zostało zakończone (jako separator zawsze stosowana jest kropka).
  • Ulepszono wsparcie dla starego binarnego formatu shaderów Direct3D. Wprowadzono instrukcje m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth,
    texreg2ar, texreg2gb, texreg2rgb. Dodano wsparcie dla modyfikatorów „_dz”, „_db”, „_dw” oraz „_da”, które można używać z instrukcjami texcrd i texld. Dodano wsparcie dla rejestrów „vFace” i „vPos” do pracy z shaderami pikselowymi.
  • W DXIL (Direct3D Intermediate Language) w kodzie, w operacjach ładowania, zapisywania, atomowej zmiany i porównania wprowadzono możliwość używania wskaźników do danych, które zostały zadeklarowane później.
  • W asemblerze shaderów Direct3D dodano wsparcie dla 16-bitowych wbudowanych stałych, a także flagi ‘64UAVs’,
    ‘ROVs’,
    ‘UAVLoadAdditionalFormats’,
    ‘UAVsAtEveryStage’,
    ‘allResourcesBound’,
    ‘enable11_1ShaderExtensions’,
    ‘int64Ops’,
    ‘nativeLowPrecision’,
    ‘stencilRef’,
    ‘viewportAndRTArrayIndex’ oraz
    ‘waveOps’.
  • Wprowadzono opcje kompilacji shaderów: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 oraz VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster