Wine 11.17 是一个实验性的开源 Win32 API 实现版本,现已发布。自 11.16 版本发布以来,已修复 44 个错误报告,并进行了 387 项更改。
最重要的变化:
- 现已初步支持屏幕模式模拟,允许全屏应用程序和游戏以其自身的虚拟分辨率运行,该分辨率会在实际渲染过程中根据显示器的 DPI 进行缩放。例如,一款较老的游戏可能使用 640x480 的分辨率,但在保持宽高比的情况下显示在更高分辨率的屏幕上。
- 新增了对 RtlGetSystemPreferredUILanguages 和 RtlGetUserPreferredUILanguages 函数的支持,用于检索在注册表中为整个系统和各个用户配置的首选界面语言列表,这些语言列表默认根据区域设置生成。此外,还新增了 RtlGetProcessPreferredUILanguages、SetProcessPreferredUILanguages、RtlGetSetThreadPreferredUILanguages 和 SetThreadPreferredUILanguages 函数,用于确定和设置进程和线程级别的首选语言列表。
- 具有 Direct3D 3 实现的内置 Vkd12d 包已更新至版本 2.1。
- 已关闭与以下应用程序相关的错误报告:certmgr.exe、Signtools、Advanced SystemCare 6.4、Autodesk 3ds Max 9、SketchUp 2021、Nokia S60 第五版 SDK 1.0、PDFCreator、SafeDisc v2.05.030、Bigrats、PTC Pro Engineer Wildfire V5、VisualSubSync 1.0.2.1、PS4 Remote Play 2.x、MigrosBank EBanking 8.2.x、Sparda Bank SecureApp 1.x、MSXML 6.0、Sennheiser Wireless Systems Manager 4.4、Netscape Navigator 3.04、xEdit。
- 已关闭与以下游戏运行相关的错误报告:GTA:罪恶都市、GTA:圣安地列斯、俄罗斯方块JR、百战天虫:爆破、地平线追逐:涡轮、星球大战:旧共和国武士 I/II、枪战、马拉松、地面控制、安卡周年纪念版、克莱夫·巴克的耶利哥。
此外,我们还可以注意到一些与葡萄酒相关的新项目:
- Wine Staging 11.17 已发布,它提供了扩展的 Wine 构建版本,其中包含一些尚未完成或存在风险的补丁,这些补丁目前还不适合集成到 Wine 主分支中。与 Wine 相比,Wine Staging 额外提供了 279 个补丁。新的 Wine Staging 版本与 Wine 11.17 代码库同步,并更新了 vkd3d 代码。一个实现了 kernel32.dll 库中 SetThreadpoolTimerEx 函数的补丁已被移植到 Wine 主发行版中。
- 我发布了 vkd3d 2.1,这是一个通过调用转换实现的 Direct3D 12 实现,它与 Vulkan 图形 API 兼容。该软件包包含 libvkd3d 库(包含 Direct3D 12 实现)、libvkd3d-shader(包含着色器模型转换器)以及 libvkd3d-utils(包含用于简化 Direct3D 12 应用程序移植的函数)。它还包含一系列演示,其中包括将 glxgears 移植到 Direct3D 12 的示例。libvkd3d 库支持大多数 Direct3D 12 特性,包括图形和计算工具、队列和命令列表、描述符和堆描述符、根签名、无序访问、采样器、命令签名、根常量、间接渲染以及 Clear*() 和 Copy*() 方法。libvkd3d-shader 实现了将着色器模型字节码转换为 SPIR-V 中间表示的功能。
在新版本的 vkd3d 中:
- HLSL 着色器语言实现已更新,在使用着色器模型 4 和 5 时支持对“half”类型进行算术运算。
- HLSL 着色器编译器加强了输入和输出数据检查,并实现了一个通道来删除着色器模型 1-3 中未使用的全局变量(uniforms)。
- GLSL(OpenGL 着色语言)后端实现了对输入寄存器的间接寻址、原子比较和整数加法运算、位运算和屏障、UAV(无序访问视图)的加载/存储操作以及线程组的共享内存的支持。
- 改进了对传统 Direct3D 二进制着色器格式的支持。实现了“sub”和“break_cmp”指令、“_x2”、“_x4”、“_x8”、“_d2”、“_d4”和“_d8”指令修饰符,以及“_bias”、“_x2”和“_bx2”操作数修饰符。
- 在转换为 SPIR-V 着色器的中间表示时,增加了对将浮点数转换为 64 位整数的操作的支持。
- Libvkd3d-utils 扩展了对着色器反射 API 的支持。现在已实现 ID3D10ShaderReflection、ID3D10ShaderReflection1 和 ID3D11ShaderReflection 接口,以及 ID3D12ShaderReflection 和 ID3D12ShaderReflectionType 接口的大多数方法。
- 为 vkd3d-compiler 添加了“--allow-half-globals”选项,并为 libvkd3d-shader 添加了 VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS 标志,以将类型为“half”的全局变量编译为类型为“float”的表示形式。
- DXVK 3.1 已发布,它实现了 DXGI(DirectX 图形基础架构)、Direct3D 8、9、10 和 11,并通过调用转换与 Vulkan API 协同工作。使用 DXVK 需要支持 Vulkan 1.4 API 的驱动程序,例如 NVIDIA 575.51.02、Mesa AMD RADV 25.0、NVIDIA 25.1 和 Intel ANV 25.1。DXVK 可用于运行 3D 应用程序和游戏。 Linux 使用 Wine,作为 Wine 内置 Direct3D 实现的更高性能替代方案,运行在 OpenGL 之上。
在新版本中:
- DXGI 新增了增量渲染支持,该支持通过 Vulkan 扩展 VK_KHR_incremental_present 实现。增量渲染仅更新屏幕上已发生变化的区域。此新功能解决了 VirtualDJ 和各种游戏启动器(例如 Ubisoft Connect)中的渲染问题。
- 增加了对直接在缓冲区中创建渲染目标视图的支持,解决了某些 Frostbite 引擎驱动的游戏(如《战地3》)中云渲染瑕疵的问题。
- 实现了库的加载,以支持 Intel GPU 特定扩展(厂商扩展)。
- 修复了《玛奇》、《巫师1》、《幽灵行动:断点》、《镜之边缘》和《RaceRoom赛车体验》的问题。
- D7VK 2.2 项目已发布,该项目实现了微软分别于 1996、1997、1998 和 1999 年提出的 Direct3D 3、5、6 和 7 图形 API。D7VK 的工作原理是将对 Vulkan API 的调用转换为 Vulkan API,从而允许您在 Vulkan 环境下运行程序。 Linux 基于 Direct3D 3、5、6 和 7 API 的复古游戏。项目代码使用 C++ 编写,并以 Zlib 许可证发布。开发基于 DXVK 项目的 d3d9 后端代码。D7VK 将 Direct3D 3、5、6 和 7 API 转换为 Direct3D 9 调用,然后再将其转换为 Vulkan API。开发者不打算像之前基于 Vulkan 的 Direct3D 8 和 Direct3D 9 实现那样,将 D7VK 集成到 DXVK 中。
新版本过渡到 DXVK 3.1 版本,重做了 D3D3 可执行缓冲区检查和 D3D3 设备的引用计数,并改进了 D3D5/3 的纹理处理。修复了以下游戏的问题,以改进对它们的支持:《指环王》中的帕兰提尔水晶、《生化危机 2》和《青蛙过河》。
来源: opennet.ru
