Нови версии Wine 11.10 и Vkd3d 2.0

Публикувана експериментална версия на откритото изпълнение на Win32 API — Wine 11.10. От пускането на версия 11.9 са затворени 17 отчета за грешки и са направени 248 промени.

Най-важните промени:

  • Вградената пакетна система Vkd3d с реализирана Direct3D 12 е актуализирана до версия 2.0.
  • Предложена е преработена поддръжка на езика XPath, реализирана без използването на библиотеката libxml2.
  • Подобрена е съвместимостта с VBScript.
  • В ntdll са добавени интерфейси за API ALPC (Advanced Local Procedure Call): NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() и NtAlpcImpersonateClientOfPort().
  • Подобрена е поддръжката на Bluetooth, добавени са методи BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid и IGattDeviceService::get_AttributeHandle.
  • В изпълнението на d3dx10 и d3dx11 е добавена възможност за зареждане на DDS файлове с масиви от текстури. Във функцията D3DX10LoadTextureFromTexture() е добавена поддръжка на 3D текстури, текстури с поддръжка на нива на детайлност и генериране на MIP нива (MipMap).
  • В DLL win32u са реализирани функциите NtUserGetMessagePos() и NtUserSetMessageExtraInfo().
  • Затворени са отчетите за грешки, свързани с работата на приложенията: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3,
    TrackChecker.
  • Затворени са отчетите за грешки, свързани с работата на игрите: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.

Проектът Wine също публикува версия на пакета vkd3d 2.0 с реализация на Direct3D 12, работеща чрез транслация на повиквания в графичния API Vulkan. В състава на пакета влизат библиотеки libvkd3d с реализация на Direct3D 12, libvkd3d-shader с трансладор на модели на шейдери и libvkd3d-utils с функции за опростяване на портването на приложения Direct3D 12, както и набор от демонстрационни примери, включително порт на glxgears на Direct3D 12. Кодът на проекта се разпространява под лицензия LGPLv2.1.

Библиотеката libvkd3d поддържа голяма част от възможностите на Direct3D 12, включително инструменти за графика и изчисления, опашки и списъци с команди, дескриптори и купчини, коренови сигнатури, неупорядочен достъп, Sample-ри, сигнатури на команди, коренови константи, непряка (indirect) визуализация, методи Clear*() и Copy*(). В libvkd3d-shader е реализирана транслацията на байт-код на модели на шейдери в междинно представяне SPIR-V. Поддържат се върхови, пикселни, тесселационни, изчислителни и основни геометрични шейдери, сериализация и десериализация на кореновата сигнатура. От шейдерните инструкции са реализирани аритметични, атомарни и битови операции, оператори за сравнение и управление на потока на данни, инструкции sample, gather и load, операции за неупорядочен достъп (UAV, Unordered Access View).

В новата версия vkd3d:

  • В реализацията на езика за шейдери HLSL е добавена начална поддръжка за цикли за 2-3 модела на шейдери, въведена е възможността за запис в структурирана споделена памет на групи от потоци, реализирани са вградени функции tex3Dbias(), tex3Dlod() и texCUBElod(), осигурена е поддръжка на семантики SV_ClipDistance, SV_CullDistance и SV_StencilRef за обработка на вход и изход от шейдери.
  • В компилатора на шейдери HLSL е реализирано автоматично премахване на дублиращи се изчисления, осигурено е изчисление на етапа на компилация на изрази от вида x % y с предварително известни стойности, подобрено е разпределението на времевите регистри. В съответствие с изискванията на спецификацията HLSL е разширена областта на видимост на променливите в цикли „for“ (променливата остава достъпна след завършване на цикъла). При парсене на дробни числа е прекратено отчитането на локализация (като разделител сега винаги се използва точка).
  • Подобрена е поддръжката на стария бинарен формат на шейдери Direct3D. Реализирани са инструкции m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth,
    texreg2ar, texreg2gb, texreg2rgb. Добавена е поддръжка на модификатори „_dz“, „_db“, „_dw“ и „_da“, които могат да се използват с инструкциите texcrd и texld. Добавена е поддръжка на регистри „vFace“ и „vPos“ за работа с пикселни шейдери.
  • В DXIL (Direct3D Intermediate Language) в кода, в операциите за зареждане, запазване, атомарна промяна и сравнение е реализирана възможност за използване на указатели към данни, обявени по-късно.
  • В асемблера на шейдери Direct3D е добавена поддръжка на 16-битови вградени константи, както и флаговете ‘64UAVs’,
    ‘ROVs’,
    ‘UAVLoadAdditionalFormats’,
    ‘UAVsAtEveryStage’,
    ‘allResourcesBound’,
    ‘enable11_1ShaderExtensions’,
    ‘int64Ops’,
    ‘nativeLowPrecision’,
    ‘stencilRef’,
    ‘viewportAndRTArrayIndex’ и
    ‘waveOps’.
  • Реализирани са опции за компилиране на шейдери: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 и VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster