» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[业评] 详细说一下STEAMOS为什么兼容性这么好。以及PROTON,WINE,DXVK

posted by wap, platform: Chrome
ps4的图形api叫gnm,有一个高层封装叫gnmx
ps5的图形api叫agc,有个高层封装叫gnmp
这两个api都比vulkan/dx12要底层的多,vulkan的前身mantle本身就是农企为了把主机开发经验作为优势带到pc搞出来的东西


TOP

posted by wap, platform: Chrome
引用:
原帖由 @devliet  于 2025-11-26 21:12 发表
好吧,微软公开了dxil文件标准。
但是严格来说这不算开源。因为公开的是标准而不是实现。dxil到机器码的实现,也不是微软做的而是gpu厂商做的,微软也没有什么源代码可以开。

至于开源的DirectXShaderCompiler,steam os用不上。

本帖最后由 devliet 于 20251126 21:16 通过手机版编辑
有关系的,光靠dxil spec根本做不到从dxil到spirv的翻译,dxil本身实现就是坨屎山,大量细节都藏在编译器源码里



TOP

posted by wap, platform: Chrome
引用:
原帖由 @devliet  于 2025-11-26 22:28 发表
就是说靠源语言hlsl的行为去反推确定目标语言dxil的行为么?
相当于靠c语言的规范反推确定汇编指令的功能了。
一般是靠低级语言的实现推导出高级语言的功能吧,反着来比较困难吧。
dxil的spec有这么不堪么,需要靠hlsl反推?gpu厂商实现dxil的时候都拿不到一份明确的spec?

DirectXShaderCompiler是处理hlsl到il的编译的,而steam os不需要编译hlsl。所以steam os不会直接受益于DirectXShaderCompiler。当然,照19楼说的,可以间接受益。
从dxil翻译到spirv和从dxil翻译到gpu isa不是一回事,dxil是基于老版本llvm ir改的,更贴近硬件指令流,翻译到gpu isa靠spec基本够。而spirv是vulkan另外设计的中间语言,和dxil很多地方差距很大,vk和dx两套标准间的差异又进一步加剧两者的差别,例如dxil的控制流各种goto,但spirv有严格的条件/循环作用域,dxil的binding模型比spirv要宽松得多等等。proton那个项目的作者专门写过篇系列博客讲里面的各种巨坑。
dxil这玩意从一开始就是个设计错误,根本不该基于llvm ir改,开源社区被这玩意恶心了十年,现在微软自己都放弃dxil了。

本帖最后由 ginaamix 于 2025-11-28 22:33 通过手机版编辑


TOP

发新话题
     
官方公众号及微博