Win32 API의 오픈 소스 구현인 Wine 11.10의 실험적 릴리스가 게시되었습니다. 11.9 릴리스 이후 17개의 버그 보고서가 마감되었으며 248개의 변경 사항이 적용되었습니다.
가장 중요한 변경 사항:
- Direct3D 3 구현이 포함된 내장 Vkd12d 패키지가 버전 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 c транслятором моделей шейдеров и libvkd3d-utils с функциями для упрощения портирования приложений Direct3D 12, а также набор демонстрационных примеров, включая порт glxgears на Direct3D 12. Код проекта распространяется под лицензией LGPLv2.1.
libvkd3d 라이브러리는 그래픽 및 컴퓨팅 기능, 명령 대기열 및 목록, 설명자 및 힙 설명자, 루트 서명, 순서 없는 액세스, 샘플러, 명령 서명, 루트 상수, 간접 렌더링, Clear*() 및 Copy*() 메서드를 포함한 대부분의 Direct3D 12 기능을 지원합니다. libvkd3d-shader는 셰이더 모델 바이트코드를 SPIR-V 중간 표현으로 변환하는 기능을 구현합니다. 정점, 픽셀, 테셀레이션, 컴퓨트 및 단순 기하 셰이더, 루트 서명 직렬화 및 역직렬화가 지원됩니다. 셰이더 명령어에는 산술, 원자 및 비트 연산, 비교 및 데이터 흐름 제어 연산자, 샘플링, 수집 및 로드 명령어, 그리고 순서 없는 액세스 뷰(UAV) 작업이 포함됩니다.
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
