Den experimentella versionen av den öppna implementeringen av Win32 API â Wine 11.10 har publicerats. Sedan version 11.9 slĂ€pptes har 17 buggrapporter stĂ€ngts och 248 Ă€ndringar gjorts.
De viktigaste Àndringarna:
- Det inbyggda paketet Vkd3d med implementation av Direct3D 12 har uppdaterats till version 2.0.
- Ett omarbetat stöd för XPath-sprÄket har föreslagits, implementerat utan anvÀndning av biblioteket libxml2.
- Kompatibiliteten med VBScript har förbÀttrats.
- Stubbar för ALPC (Advanced Local Procedure Call) API har lagts till i ntdll: NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() och NtAlpcImpersonateClientOfPort().
- Bluetooth-stödet har förbÀttrats, och metoder som BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid och IGattDeviceService::get_AttributeHandle har lagts till.
- Implementeringen av d3dx10 och d3dx11 har fÄtt stöd för att ladda DDS-filer med texturarrayer. D3DX10LoadTextureFromTexture()-funktionen har fÄtt stöd för 3D-texturer, texturer med mip-level-stöd och generering av MIP-nivÄer (MipMap).
- Funktionerna NtUserGetMessagePos() och NtUserSetMessageExtraInfo() har implementerats i DLL win32u.
- Buggrapporter relaterade till applikationers funktion har stÀngts: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3.
TrackChecker. - Buggrapporter relaterade till spelens funktion har stÀngts: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.
Wine-projektet har ocksÄ publicerat versionen av paketet vkd3d 2.0 med implementation av Direct3D 12, som arbetar genom att översÀtta anrop till grafiska API Vulkan. Paketet innehÄller biblioteken libvkd3d med implementation av Direct3D 12, libvkd3d-shader med shader-modell-översÀttare och libvkd3d-utils med funktioner för att underlÀtta portering av Direct3D 12-applikationer, samt ett antal demonstrations exempel, inklusive porteringen av glxgears till Direct3D 12. Koden för projektet distribueras under LGPLv2.1.
Biblioteket libvkd3d stöder de flesta funktioner i Direct3D 12, inklusive grafik- och berÀkningsverktyg, köer och kommandolistor, deskriptorer och heap-deskriptorer, rot-signer, oordnad Ätkomst, Samplrar, kommandosignaturer, rot-konstanter, indirekt rendering, Clear*()- och Copy*()-metoder. I libvkd3d-shader finns det en översÀttning av shadermodeller till det mellanliggande formatet SPIR-V. Det stöder vertex-, pixel-, tessellations-, compute- och enkla geometriska shaders, serialization och deserialization av rot-signaturer. FrÄn shaderinstruktionerna finns det stöd för aritmetiska, atomÀra och bitoperationer, jÀmförelseoperatorer och kontroll av datarutten, samt instruktioner för sample, gather och load, och operationer för oordnad Ätkomst (UAV, Unordered Access View).
I den nya versionen av vkd3d:
- Implementeringen av HLSL-shadersprÄket har fÄtt inledande stöd för loopar för 2-3 shader-modeller, möjlighet att skriva till strukturerad delad minne för trÄdgrupper, inbyggda funktioner tex3Dbias(), tex3Dlod() och texCUBElod() har implementerats, och stöd för semantiken SV_ClipDistance, SV_CullDistance och SV_StencilRef har sÀkerstÀllts för hantering av in- och utdata frÄn shaders.
- I kompilatorn för HLSL-shaders har automatisk borttagning av duplicerade berÀkningar implementerats, berÀkning av uttryck av typen x % y med förhandskÀnda vÀrden har sÀkerstÀllts, och fördelningen av temporÀra register har förbÀttrats. I enlighet med HLSL-specifikationens krav har synligheten för variabler i "for"-loopar utvidgats (variabeln förblir tillgÀnglig efter att loopen avslutats). Vid parsing av flyttal har lokalkontrollen avbrutits (punkten anvÀnds nu alltid som avskiljare).
- Stödet för det gamla binÀra shaderformatet Direct3D har förbÀttrats. Instruktioner som m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth har implementerats.
texreg2ar, texreg2gb, texreg2rgb. Stöd för modifikatorer som "_dz", "_db", "_dw" och "_da" som kan anvÀndas med instruktionerna texcrd och texld har lagts till. Registren "vFace" och "vPos" har lagts till för arbete med pixelytor. - I DXIL (Direct3D Intermediate Language) har möjligheten att anvÀnda pekare pÄ data som deklarerats senare i koden, vid laddnings-, spara-, atomiska Àndrings- och jÀmförelseoperationer, implementerats.
- I assemblern för Direct3D-shaders har stöd för 16-bitars inbyggda konstanter, samt flaggor som â64UAVsâ,
âROVsâ,
âUAVLoadAdditionalFormatsâ,
âUAVsAtEveryStageâ,
âallResourcesBoundâ,
âenable11_1ShaderExtensionsâ,
âint64Opsâ,
ânativeLowPrecisionâ,
âstencilRefâ,
âviewportAndRTArrayIndexâ och
âwaveOpsâ har lagts till. - Alternativ för shaderkompilering har implementerats: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 och VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.
KĂ€lla: opennet.ru
