Kiadásra került a Win32 API nyílt megvalósításának kísérleti verziója — Wine 11.10. A 11.9-es kiadás óta 17 hibajelentést zártak le, és 248 módosítást hajtottak végre.
A legfontosabb változások:
- A beépített Vkd3d csomag, amely a Direct3D 12 megvalósítását tartalmazza, frissült a 2.0-ás verzióra.
- Javasolták az XPath nyelv újratervezett támogatását, amely libxml2 könyvtár használata nélkül valósult meg.
- Javítva a VBScript-tel való kompatibilitás.
- Az ntdll-be új API ALPC (Advanced Local Procedure Call) funkciók kerültek: NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() és NtAlpcImpersonateClientOfPort().
- Javították a Bluetooth támogatását, új módszereket adtak hozzá: BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid és IGattDeviceService::get_AttributeHandle.
- A d3dx10 és d3dx11 megvalósítása lehetővé tette a DDS fájlok betöltését textúra tömbökkel. A D3DX10LoadTextureFromTexture() funkcióban támogatják a 3D-s textúrákat, a részletességi szintekkel rendelkező textúrákat és a MIP-szintek (MipMap) generálását.
- A win32u DLL-ben implementálták az NtUserGetMessagePos() és NtUserSetMessageExtraInfo() funkciókat.
- Lezárták a hibajelentéseket, amelyek a következő alkalmazások működésével kapcsolatosak: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3.
TrackChecker. - Lezárták a hibajelentéseket, amelyek a következő játékok működésével kapcsolatosak: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.
A Wine projekt szintén kiadta a vkd3d 2.0 csomagot a Direct3D 12 megvalósításával, amely a hívások átirányításával működik a Vulkan grafikus API-n keresztül. A csomag tartalmazza a libvkd3d könyvtárakat a Direct3D 12 megvalósításával, libvkd3d-shader-t a shadermodellek fordítójával, és libvkd3d-utils-t a Direct3D 12 alkalmazások portolásának megkönnyítésére, valamint egy sor bemutató példát, beleértve a glxgears portját a Direct3D 12-re. A projekt kódja az LGPLv2.1 licenc alatt érhető el.
A libvkd3d könyvtár a Direct3D 12 legtöbb funkcióját támogatja, beleértve a grafikai és számítási eszközöket, a parancslapokat és parancssorokat, a leírókat és a leíró tömböket, a gyökér aláírásokat, a rendezett hozzáférést, a Sampler-eket, a parancsok aláírásait, a gyökér konstansokat, az indirekt rajzolást, valamint a Clear*() és Copy*() metódusokat. A libvkd3d-shader könyvtárban a shader modellek bájt-kódjának átírása valósult meg SPIR-V köztes formába. Támogatottak a vertex, pixel, tessellációs, számítási és egyszerű geometriai shaderek, a gyökér aláírás szérializációja és deszérializációja. Az árnyékolási utasítások közül megvalósultak a matematikai, atomikus és bit műveletek, az összehasonlító operátorok és az adatáramlás vezérlő utasítások, a sample, gather és load utasítások, az Unordered Access View (UAV) műveletek.
Az új vkd3d verzióban:
- A HLSL shader nyelv megvalósításába kezdeti ciklus-támogatást vezettek be 2-3 shader modellhez, lehetőséget biztosítva a strukturált megosztott memória írására a szálcsoportok számára, implementálták a beépített tex3Dbias(), tex3Dlod() és texCUBElod() funkciókat, valamint támogatják az SV_ClipDistance, SV_CullDistance és SV_StencilRef szemantikákat a shaderek bemeneti és kimeneti feldolgozásához.
- A HLSL shadert fordítóban automatikus duplikált számítások eltávolítása valósult meg, előre ismert értékek esetén megoldva az x % y kifejezések fordítását a fordítási fázisban, valamint javult a temporális regiszterek elosztása. Az HLSL specifikáció követelményeinek megfelelően kibővült a változók láthatósága a 'for' ciklusokban (a változó a ciklus befejezése után is elérhető marad). A tizedes számok elemzésekor megszűnt a lokalizáció figyelembevétele (a szeparátor mostantól mindig pont).
- Javult a régi Direct3D shaderek bináris formátumának támogatása. Megvalósultak az m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth utasítások.
texreg2ar, texreg2gb, texreg2rgb. Hozzáadták a 'dz', 'db', 'dw' és 'da' módosítók támogatását, amelyeket a texcrd és texld utasításokkal lehet használni. Hozzáadták a 'vFace' és 'vPos' regiszterek támogatását a pixel shaderekkel való munkához. - A DXIL-ben (Direct3D Intermediate Language) a kódban, a betöltési, mentési, atomikus változtatási és összehasonlítási műveletekben megvalósították az adatokra mutató mutatók használatának lehetőségét, amelyek később lettek deklarálva.
- A Direct3D shaderek assembly-jéhez hozzáadták a 16-bites beépített konstansok támogatását, valamint az '64UAVs',
'ROVs',
'UAVLoadAdditionalFormats',
'UAVsAtEveryStage',
'allResourcesBound',
'enable11_1ShaderExtensions',
'int64Ops',
'nativeLowPrecision',
'stencilRef',
'viewportAndRTArrayIndex' és
'waveOps'. - A shaderek fordításának opciói: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 és VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.
Forrás: opennet.ru
