微软希望向上游 LLVM/Clang 编译器添加 DirectX + HLSL 支持
微软方面提出了一项提案,希望为上游 LLVM/Clang 编译器贡献 HLSL、DirectX 和 Vulkan 图形支持。
原因在于,其现有的 HLSL 编译器 DirectX Shader Compiler (DXC) 基于旧的 LLVM/Clang 3.7 分支。而微软计划将其编译器更新到最新的 LLVM,以便为 HLSL 带来新的 C++ 语言功能和工具改进。微软于 2017 年宣布了开源 DirectX 着色器编译器。
“虽然我们可以在自己的分叉中做到这一点,但我们相信将我们的编译器和社区与 LLVM 社区集成将使我们能够扩展这两个社区,并为我们的用户提供更好的编译器。”
微软方面表示,他们有兴趣支持三个主要的 CodeGen targets。首要任务是支持 DXC 目前支持的 code generation targets:DirectX 中间语言 (DXIL) 和 SPIR-V;将来可能会添加对 DirectX 9 到 DirectX 11 使用的 DirectX Bytecode (DXBC) 的支持。
“LLVM 社区中已经有很多关于 SPIR-V 的讨论。SPIR-V 是用于 GPU 编程的虚拟 ISA。由于编写 HLSL 的开发人员广泛使用 SPIR-V code generation,这对我们来说也是一个至关重要的特性。我们可以通过多种方式支持 SPIR-V,我们期待与社区积极合作来解决这个问题。”
鉴于 LLVM/Clang 3.7 已经有 7 年的历史,微软不打算将现有的编译器合并到现代 LLVM 中,而是计划在 LLVM/main 中逐步重新实现编译器功能。这意味着将特定于 HLSL 的语言选项添加到 Clang 前端以及对 Clang 和 LLVM 的 DirectX target 支持。
“Clang DirectX target 实现类似于 CUDA 或 OpenCL targets,在 LLVM 中,我们将添加一个 DirectX target 以包含我们的 codegen passes 并 emit DXIL。通过将尽可能多的 DXIL 特定代码隔离到目标中,我们希望最大限度地降低社区维护我们遗留的 bitcode 编写支持的成本。
我们打算采用与当前编译器不同的方法在 Clang 中实现 HLSL 支持,所以虽然我们可以将当前的实现作为语言特性的参考和测试文件的源,但我们不会将其作为实现细节的模型。
假设这个提议是可以接受的,那么前几个补丁就可以立即开始发布以供审查。随着我们的前进,我们希望建立一个 HLSL 工作组,该工作组将定期召开会议,讨论和跟踪进度并协调贡献者之间的工作。Microsoft 承诺将 Clang 的功能与 DXC 看齐,但 HLSL 社区正在支持这项工作,我们希望在 HLSL 支持功能完成后将开发完全转移到 LLVM/main。”
详情可查看 RFC 提案。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Windows 11 为其 Android 子系统推送多项更新
Windows Subsystem for Androi 简称 WSA,是适用于 Windows 的 Android 子系统,主要功能是让 Windows 11 设备能够运行 Android 应用。 近日 Windows 11 预览体验团队为 WSA 推送了多项更新,包括对视频播放、Windows 集成和安全更新的一些重大更改。 H.264 视频硬件解码 该更新允许 WSA 利用硬件加速 H.264 解码,可以在利用高清视频播放的多个 Android 应用程序上提供更好的体验。 网络变化 该更新带来了 WSA 平台中的网络更改,让 Android 应用有更流畅的网络连接。(该更新项该在继续完善中) 邮件集成 改进了 Windows 与 WSA 的集成,在此更新中,Windows 电子邮件客户端和移动端应用程序之间的集成得到了改进,使用邮件客户端或邮件消息的应用程序可从中受益。 MSAA(多采样抗锯齿)更改 虽然 MSAA 对一些游戏应用程序来说是一项有用的功能,但有用户报告说无法禁用 4X MSAA,因此 WSA 不再强制启用抗锯齿,MSAA 成为一个可选项。 输入改进 改进了WSA ...
- 下一篇
Android 再推 “杀手级” 功能,可回收 60% 存储空间
如今智能手机承载的功能越来越多,自然用户所需的存储空间也越来越大。但对于使用中低端手机的用户而言,存储空间捉襟见肘,他们时常需要为了安装某些新应用而卸载目前手机里已经安装的应用,从而释放手机空间。 Google 在几年前就为 Android 带来了卸载不常用应用的功能,该功能可以在手机容量不足时,提示用户卸载很久没有使用过的应用以释放手机空间。但是这个功能也有一个弊端,就是对于没有账号体系的应用来说,卸载应用后就会导致数据丢失(有些用户只是临时卸载,后续还会重新安装回来)。 值得庆幸的是,日前 Google 研究出了一个解决方案,有望解决用户面临的这个问题。在新的解决方案下,当用户需要更多手机空间时,Android 系统可以将应用程序的部分组件移除(无需完全卸载应用程序,仅部分卸载)并同时保留用户的核心数据,用户可以随时恢复原样。这个功能被 Google 称为应用归档(app archiving),可回收大约 60% 的应用程序存储空间。 这个功能需要开发者主动进行适配,虽然在一定程度上会给开发者带来更多的工作量,但适配后也会降低用户彻底卸载的概率,提升应用的活跃度甚至是付费率。开发者...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装Nodejs环境