U publikua njĂ« version eksperimental i implementimit tĂ« hapur tĂ« Win32 API â Wine 11.10. QĂ« nga lĂ«shimi i 11.9, janĂ« ndalur 17 raportime tĂ« defekteve dhe janĂ« bĂ«rĂ« 248 ndryshime.
Ndryshimet më të rëndësishme:
- Paketa e integruar Vkd3d me implementimin e Direct3D 12 është azhurnuar në versionin 2.0.
- është propozuar një mbështetje e rishikuar për gjuhën XPath, e realizuar pa përdorimin e bibliotekës libxml2.
- ĂshtĂ« pĂ«rmirĂ«suar compatibiliteti me VBScript.
- Në ntdll janë shtuar zëvendësime për API ALPC (Advanced Local Procedure Call): NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() dhe NtAlpcImpersonateClientOfPort().
- është përmirësuar mbështetja për Bluetooth, janë shtuar metodat BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid dhe IGattDeviceService::get_AttributeHandle.
- Në implementimin d3dx10 dhe d3dx11 është shtuar mundësia për të ngarkuar skedarë DDS me grupe teksturash. Në funksionin D3DX10LoadTextureFromTexture() është shtuar mbështetje për teksturat 3D, teksturat me nivele detajesh dhe gjenerimin e niveleve MIP (MipMap).
- Në DLL win32u janë implementuar funksionet NtUserGetMessagePos() dhe NtUserSetMessageExtraInfo().
- Janë mbyllur raportet e defekteve të lidhura me funksionimin e aplikacioneve: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3,
TrackChecker. - Janë mbyllur raportet e defekteve të lidhura me funksionimin e lojrave: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.
Projekti Wine gjithashtu publikoi versionin e paketës vkd3d 2.0 me implementimin e Direct3D 12, i cili punon përmes transmetimit të thirrjeve në API-në grafike Vulkan. Paketimi përfshin biblioteka libvkd3d me implementimin e Direct3D 12, libvkd3d-shader me përkthyesin e modeleve të shenjuesve dhe libvkd3d-utils me funksione për të thjeshtuar portimin e aplikacioneve Direct3D 12, si dhe një grup shembujsh demonstrues, duke përfshirë portimin e glxgears në Direct3D 12. Kodi i projektit distribuohet nën licencën LGPLv2.1.
Biblioteka libvkd3d mbështet shumicën e mundësive të Direct3D 12, duke përfshirë mjete për grafikë dhe llogaritje, radhë dhe lista komanduese, deskriptorë dhe deskriptorë kupë, nënshkrime rrënjësore, qasje të pa renditur, Sampler, nënshkrime komandash, konstanta rrënjësore, përshkrimin e të pavendosur (indirect) dhe metodet Clear*() dhe Copy*(). Në libvkd3d-shader është realizuar translacioni i kodit të bajtëve të modeleve të shenjuesve në përfaqësimin e ndërmjetëm SPIR-V. Mbështeten shenjues të majtë, piksel, tessellim, llogaritje dhe shenjues të thjeshtë gjeometrik, serializimi dhe deserializimi i nënshkrimeve rrënjësore. Nga instruksionet e shenjuesve janë realizuar operacione aritmetike, atomike dhe bitore, operatorë krahasimi dhe kontrolli të rrjedhës së të dhënave, instruksionet sample, gather dhe load, operacione qasjeje të pa renditur (UAV, Unordered Access View).
Në versionin e ri të vkd3d:
- Në realizimin e gjuhës së shenjuesve HLSL është shtuar mbështetje fillestare për ciklet për 2-3 modele shenjuesish, është mundësuar shkruajtja në memorien e ndarë strukturale të grupeve të rrjedhave, janë realizuar funksionet e integruara tex3Dbias(), tex3Dlod() dhe texCUBElod(), është siguruar mbështetje për semantikët SV_ClipDistance, SV_CullDistance dhe SV_StencilRef për përpunimin e hyrjes dhe daljes nga shenjuesit.
- Në kompilatorin e shenjuesve HLSL është realizuar heqja automatikisht e llogaritjeve të dyfishta, është siguruar llogaritja në fazën e kompilimit të shprehjeve të llojit x % y me vlera të njohura përpara, është përmirësuar shpërndarja e regjistrave temporal. Në përputhje me kërkesat e specifikimit HLSL është zgjeruar zona e dukshmërisë së variablave në ciklet 'for' (variabla mbetet e aksesueshme edhe pas përfundimit të ciklit). Gjatë përpunimit të numrave të thyeshëm është ndalur llogaritja e lokalitetit (si ndarës tani gjithmonë përdoret pika).
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r formatin e vjetĂ«r binar tĂ« shenjuesve Direct3D. JanĂ« realizuar instruksionet m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth,
texreg2ar, texreg2gb, texreg2rgb. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r modifikatorĂ«t '_dz', '_db', '_dw' dhe '_da', tĂ« cilĂ«t mund tĂ« pĂ«rdoren me instruksionet texcrd dhe texld. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r regjistrat 'vFace' dhe 'vPos' pĂ«r tĂ« punuar me shenjues piksel. - NĂ« DXIL (Gjuha NdĂ«rmjetĂ«se Direct3D) nĂ« kodin, nĂ« operacionet e ngarkimit, ruajtjes, ndryshimit atomik dhe krahasimit Ă«shtĂ« realizuar mundĂ«sia e pĂ«rdorimit tĂ« treguesve nĂ« tĂ« dhĂ«na, tĂ« shpallura mĂ« vonĂ«.
- NĂ« asamblerin e shaderĂ«ve Direct3D u shtua mbĂ«shtetje pĂ«r konstantet e ndĂ«rtuara 16-b prejardhje, si dhe pĂ«r flagjet â64UAVsâ,
âROVsâ,
âUAVLoadAdditionalFormatsâ,
âUAVsAtEveryStageâ,
âallResourcesBoundâ,
âenable11_1ShaderExtensionsâ,
âint64Opsâ,
ânativeLowPrecisionâ,
âstencilRefâ,
âviewportAndRTArrayIndexâ dhe
âwaveOpsâ. - JanĂ« realizuar opsione tĂ« kompilimit tĂ« shaderĂ«ve: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 dhe VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.
Burimi: opennet.ru
