LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1403|回复: 4

linux下可不可以实现一个directx库

[复制链接]
发表于 2010-4-15 15:41:27 | 显示全部楼层 |阅读模式
我听说wine实现的directx接口的内部是调用opengl实现的。
但是dx支持的很多硬件加速和opengl是不一样的,这是不是就是很多大型游戏在wine下跑得慢的原因?

mesa是opengl的实现,可不可能并列做一个库实现直接实现dx,这样在linux跑win的游戏应该性能就上来了吧
发表于 2010-4-17 17:59:40 | 显示全部楼层
这个工作不大可能有人做的!
微软不会做,它要卖瘟到死,如果什么游戏都能在Linux下用,谁花钱买瘟到死?
游戏厂商不会做,如果它们要支持Linux,为何不用OpenGL?它们根本不必做这事
用户做?楼主有心就做吧,不过想想楼主还是用瘟到死来玩游戏或者不玩那不支持Linux的游戏吧。
OpenGL应该还不错吧
回复 支持 反对

使用道具 举报

发表于 2010-4-17 22:59:05 | 显示全部楼层
不行,dx是需要硬件驱动配合的,不仅仅是软件层。
回复 支持 反对

使用道具 举报

发表于 2010-4-19 10:53:34 | 显示全部楼层
Post by fpemud;2083026
我听说wine实现的directx接口的内部是调用opengl实现的。
但是dx支持的很多硬件加速和opengl是不一样的,这是不是就是很多大型游戏在wine下跑得慢的原因?
mesa是opengl的实现,可不可能并列做一个库实现直接实现dx,这样在linux跑win的游戏应该性能就上来了吧



各种显卡在 linux 下的驱动只支持 opengl ,因此应用层无法实现。

要想在 wine 中实现 dx,需要各种显卡在 linux 下的驱动支持 dx。而在驱动层去开发 dx 支持,又不可避免的会调用 dx 相关的函数,这就把相关的 windows 东西引入进来了。显然,我们不可能把 windows 相关的东西引入到内核/驱动中。也许兼容内核项目组会愿意这么做,但这个做法永远不会被主流开源社区接受。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-26 18:59:32 | 显示全部楼层
我看过了内核dri模块的层次结构和代码,mesa库是在dri之上,在用户空间实现的opengl。
nvidia等闭源驱动也是提供一个dri内核模块,再提供一个用户空间的opengl驱动库。

也就是说linux的内核设计得很好,linux内核的显卡驱动接口和opengl、dx是无关的。
opengl,dx都可以由用户空间的代码实现。

所以在linux开发dx应该不会涉及到对内核的开发。
不过我也觉得不太可能有厂商支持,靠爱好者做从技术和工作量上也不太可能。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表