Кандидат у релізи Wine 8.0 та реліз vkd3d 1.6

Почалося тестування першого кандидата у релізи Wine 8.0, відкритої реалізації WinAPI. Кодова база переведена на стадію заморозки перед релізом, що очікується у середині січня. Порівняно з випуском Wine 7.22 закрито 52 звіти про помилки та внесено 538 змін.

Найважливіші зміни:

  • Пакет vkd3d з реалізацією Direct3D 12, що працює через трансляцію викликів до графічного API Vulkan, оновлено до версії 1.6.
  • Проведено оптимізацію перетворювачів системних викликів (thunk) для Vulkan та OpenGL.
  • У WinPrint розширено підтримку обробників виведення друку (Print processor).
  • Поліпшено панель керування джойстиком.
  • Завершено роботу із забезпечення підтримки типу 'long' у коді функції printf.
  • Закрито звіти про помилки, пов'язані з роботою ігор: Tom Clancy's Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
  • Закрито звіти про помилки, пов'язані з роботою програм: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.

Додатково можна відзначити публікацію проектом Wine пакета vkd3d 1.6 з реалізацією Direct3D 12, що працює через трансляцію дзвінків до графічного API Vulkan. До складу пакету входять бібліотеки libvkd3d з реалізацій Direct3D 12, libvkd3d-shader з транслятором 4 і 5 моделі шейдерів і libvkd3d-utils з функціями для спрощення портування додатків Direct3D 12, а також набір демонстраційних прикладів 3D12D2.1Ds. під ліцензією LGPLvXNUMX.

Бібліотека libvkd3d підтримує більшу частину можливостей Direct3D 12, включаючи засоби для графіки та обчислень, черги та списки команд, дескриптори та дескриптори купи, кореневі сигнатури, неупорядкований доступ, Sampler-и, сигнатури команд, кореневі константи, непряму *() та Copy*(). У libvkd3d-shader реалізована трансляція байткоду 4 та 5 моделей шейдерів у проміжне уявлення SPIR-V. Підтримуються вершинні, піксельні, тесселяційні, обчислювальні та прості геометричні шейдери, серіалізація та десеріалізація кореневої сигнатури. З шейдерних інструкцій реалізовані арифметичні, атомарні та бітові операції, оператори порівняння та управління потоком передачі даних, інструкції sample, gather та load, операції неупорядкованого доступу (UAV, Unordered Access View).

У новій версії продовжено роботу з покращення компілятора шейдерів мовою HLSL (High-Level Shader Language), що надається починаючи з DirectX 9.0. Серед покращень, пов'язаних з HLSL:

  • Реалізовано початкову підтримку обчислювальних шейдерів.
  • Поліпшено підтримку ініціалізації та призначення складових об'єктів, таких як структури та масиви.
  • Додано можливість завантаження та збереження ресурсів текстур, використовуючи неупорядкований доступ (UAV).
  • Додано підтримку атрибутів функцій та реалізовано вбудовані функції asuint(), length(), normalize().
  • Додано підтримку модулів для обчислень з плаваючою комою.
  • Реалізовано прапор VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS для індикації атомарних операцій над дескрипторами неупорядкованого представлення доступу (UAV).

Джерело: opennet.ru

Додати коментар або відгук