国产化自己绊自己?

272 天前
 seanwhy
今天闲来无事,详细说说适配国产化过程中的一些事。
话说自从用上 webassembly 技术后,我们原来的老 C++开发的引擎又焕发第二春了,在各类平台上运行的都还好。后面就有客户提出在银河麒麟 V10 上使用我们的产品,当时显卡还是用的英伟达,一切也相安无事。
后来不知道哪位领导提的,要试试某国产显卡,就叫他 M 好了,高端的性能据说能玩黑悟空,企业用的是中低端,个人体感打个 1030-1050 差不多。
这时候幺蛾子就来了。该显卡宣称支持 opengl4.x ,opengles3 ,理论上咱也能跑是吧。可现实就是,麒麟自带的 360 安全浏览器、奇虎浏览器,均能正常运行我们的程序,可是在 chromium 上,或者 electron 上,就提示图形环境缺失,用检测网站测试也显示 webgl2 不支持。
第一感觉就是 360 做了手脚,其次国产显卡厂商驱动适配的也不好。正常逻辑其实就是反馈给厂家,让厂家适配 chromium 系。结果厂家挺强硬:目前没资源,其次我们仅支持国产化,也就是 360 等国内厂商浏览器支持就行了,chromium 是国外软件,也不用支持,巴拉巴拉。
后面没办法,心想 360 能跑,咱改一下 chromium 源码,应该大差不差。于是哼哧哼哧折腾,调试后就发现了好玩的事情。
主要原因就是 M 显卡驱动的一个 gl 查询函数返回了异常的时间戳,这个在 chromium 端会直接因为这个问题导致 GPU 环境初始化失败,然后 chromium 会使用自己的 EGL 环境去替代。这也导致了上面的问题。
这个函数看起来也不是很难实现的函数,M 显卡出于什么考量不去做兼容适配,这是其一。
360 为何默认强制启用了 opengl 渲染模式,而不是按照 chromium 正常逻辑走 egl ,且修改了这个初始化异常的 bug ,也就是模拟给予时间戳,这是其二。
从显卡厂商考虑,提高其兼容性应是其首要目标,但为何不去做这个看起来很简单的适配;从 360 考虑,硬件的缺陷不应该通过软件方式修复,不然谷歌为何一直不修复这个看似很简单的问题。
联想一下,得出结论,国产自己绊自己脚?或者说是变相的保护主义?
8583 次点击
所在节点    程序员
47 条回复
Torpedo
271 天前
@uqf0663 #2 不过还有个问题,就是就算这个反馈到了程序员那里。他手上可能同时有 n 个事情,这个如果没有记录到需求管理,或者他不怎么用需求管理,没排上就忘记了。或者一直排不上
shijingshijing
271 天前
360 为何默认强制启用了 opengl 渲染模式,而不是按照 chromium 正常逻辑走 egl ,且修改了这个初始化异常的 bug ,也就是模拟给予时间戳,这是其二。
--------------------------------------------------------
有没有一种可能是 360 前面已经踩过一遍坑了,然后也不支声,现在反倒成了国产优势了。
yulgang
271 天前
一个更新源目录做的乱七八糟,还经常删目录的系统软件还能期待他能做什么。
catazshadow
271 天前
朝内只有工程师,没有设计师

就像一堆画画不懂事先安排布局,只会炫耀自己笔用的多好的画师

不就只能整出顾头不顾尾,一点全局考虑都看不到的国产精品么
cooltechbs
271 天前
@codehz 按你说的 URL 看了一下惊呆了,我是 AMD Vega 7 核显,很经典的东西吧,竟然也有十多个 workaround ,不知道 Chrome 显示的是这个版本内置的所有 workarounds 还是仅仅当前启用的那部分……
linzyjx
270 天前
我们在 24 年也搞了好几家的卡,而且都是能直接对接到研发那边做技术支持的。只能说目前阶段,国产卡在硬件和驱动上都有不少坑。
想稳定再等两年吧。
julyclyde
269 天前
@Fule 先跑起来再说不等于跑起来之后不管修,这完全是两码事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1107005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX