Win32 API 的开源实现的实验版本 Wine 11.10 已经发布。自 11.9 版本发布以来,已关闭 17 个错误报告并进行了 248 项更改。
最重要的变化:
- 具有 Direct3D 3 实现的内置 Vkd12d 包已更新至版本 2.0。
- 本文提出了一种改进的 XPath 语言支持方案,该方案无需使用 libxml2 库即可实现。
- 提高了与VBScript的兼容性。
- 已将 ALPC(高级本地过程调用)API 的存根添加到 ntdll 中:NtAlpcCreatePort()、NtAlpcConnectPort()、NtAlpcAcceptConnectPort()、NtAlpcSendWaitReceivePort()、NtAlpcDisconnectPort() 和 NtAlpcImpersonateClientOfPort()。
- 改进了蓝牙支持,添加了方法 BluetoothLEDeviceStatics::FromBluetoothAddressAsync、IBluetoothLEDevice::get_DeviceId、IBluetoothLEDevice::get_GattServices、IGattDeviceService::get_Uuid 和 IGattDeviceService::get_AttributeHandle。
- d3dx10 和 d3dx11 实现现在支持加载带有纹理数组的 DDS 文件。D3DX10LoadTextureFromTexture() 函数现在支持 3D 纹理、支持 LOD 的纹理以及 MIPmap 生成。
- win32u DLL 实现了 NtUserGetMessagePos() 和 NtUserSetMessageExtraInfo() 函数。
- 已关闭与以下应用程序运行相关的错误报告:IrfanView、Kodak EasyShare、Git for WindowsFamily Tree Maker 2017、Foxit PhantomPDF Business 10.0、Vocaloid 6、Photolemur 3
TrackChecker。 - 已关闭与以下游戏运行相关的错误报告:星球大战赛车、星球大战:旧共和国武士、帝国时代 III:亚洲王朝。
Wine 项目还发布了 vkd3d 2.0 软件包,这是一个 Direct3D 12 实现,它通过调用转换与 Vulkan 图形 API 兼容。该软件包包含 libvkd3d 库(包含 Direct3D 12 实现)、libvkd3d-shader(包含着色器模型转换器)和 libvkd3d-utils(包含用于简化 Direct3D 12 应用程序移植的函数),以及一系列演示程序,其中包括将 glxgears 移植到 Direct3D 12 的版本。该项目代码以 LGPLv2.1 许可证发布。
libvkd3d 库支持大多数 Direct3D 12 功能,包括图形和计算功能、命令队列和列表、描述符和堆描述符、根签名、无序访问、采样器、命令签名、根常量、间接渲染、Clear*() 和 Copy*() 方法。 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 中间语言)中,使用指向后续声明数据的指针的功能已在代码中通过加载、保存、原子更改和比较操作实现。
- Direct3D 着色器汇编器已添加对 16 位内置常量和“64UAVs”标志的支持。
“遥控潜水器”,
'UAVLoadAdditionalFormats',
“无人机无处不在”
'allResourcesBound',
'启用11_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
