国产化自己绊自己?

2025 年 1 月 22 日
 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 考虑,硬件的缺陷不应该通过软件方式修复,不然谷歌为何一直不修复这个看似很简单的问题。
联想一下,得出结论,国产自己绊自己脚?或者说是变相的保护主义?
10048 次点击
所在节点    程序员
47 条回复
murmur
2025 年 1 月 22 日
国产化目前就=java+web ,你那个超纲了,还是老老实实 native 开发吧
uqf0663
2025 年 1 月 22 日
“但为何不去做这个看起来很简单的适配”
其实就是公司人多,真正干活的人不知道你这个问题,跟你对接的人又傲慢或者内部信息不通畅,没有反馈到真正干活的人那里去。

类似的事情我是搞电商的,有很多小问题其实都不难处理,但是客户只能找客服,客服又傻,老是随便应付,每次都得遇到一些较真的人,各种投诉把事情闹大后问题才有可能反馈到我这来,等我去从头核实一遍情况的时候只能卧槽。
政府机构也有类似的情况,基层有问题随便应付,高层完全不知道下面发生了啥事情。
xking
2025 年 1 月 22 日
@uqf0663 同感, 程序员要是能直接看到一线的问题, 不少都能顺手解决了. 我们也只是高频的问题才能得到运营的反馈🤣
客户才是最好的产品经理, 我们的产品也是用户天天用, 哪里顺不顺手, 都是用户感知最强
moooxin
2025 年 1 月 22 日
作为以身入局的国产化螺丝旋转工程师,我只能说现在国产化大部分 项目 的 第一目标 都是: 先验收通过!!!
至于其他的,兼容?标准化? 不在考虑范围。
macaodoll
2025 年 1 月 22 日
硬件层级确实如一楼所说,超纲了,目前国产化的任何硬件都有坑,任何.
A5SqQoWI1DOXm7Y7
2025 年 1 月 22 日
莫比国产化,只不过套壳子,底层都是开源那一套,
2xvaHoK2LGxQ29R5
2025 年 1 月 22 日
估计没有资源是真的没资源,毕竟国产化现在需求是刚需,满足刚需肯定是活下去的第一要务
codehz
2025 年 1 月 22 日
显卡驱动有 bug 不是很常见的事情吗,谁来修的问题主要看谁强势,你看 chrome://gpu 里一大堆 Driver Bug Workarounds/Problems Detected 就知道 chrome 给那些各种各样显卡的 bug 擦了多少屁股了
Fule
2025 年 1 月 22 日
想起来刚入行的时候前辈常说的一句话:“先跑起来再说”
lxxiil
2025 年 1 月 22 日
25 年我们公司刚发的国产处理器笔记本比我刚淘汰下来的 i5 4200u 笔记本还卡,待机插电都会 24 小时发热,远程软件直接花屏,因为缺失对应的编码解码指令集,牛逼透了,我又重新自费买了台二手联想 y7000
anubu
2025 年 1 月 22 日
稍微有点蹭国产化的 debuff ,是常规 bug ,但拿国产化标签讨论有点过。
“从显卡厂商考虑,提高其兼容性应是其首要目标”,硬件层面出于各种原因,故意限制其兼容性的例子太多了,所以这个前提有待商榷。从一个通用消费电子产品来说,应该不存在故意,可能更准确的说法是,使用有限的资源在有限的范围内提供兼容性。这个前提下,没有覆盖的场景出现 bug 是可预期的。
“硬件的缺陷不应该通过软件方式修复”,这个不能说错,但上游不修复,下游出个 workaround 算是常规操作吧。
Mark24
2025 年 1 月 22 日
需要一个过程
BuffDog
2025 年 1 月 22 日
突然想起我自己负责的某个国产化,electron 应用在国产环境上启动白屏,查了一下是显卡渲染失败,最后强制 CPU 渲染才得
thenewland
2025 年 1 月 22 日
国际化品牌 苹果 难道不更应该批判?他家做的更绝
liubaicai
2025 年 1 月 22 日
toB 项目,能兼容国产浏览器已经不错了,能验收了。信创环境也没人用 chromium 验收,怕啥。但是后真有人用 chromium 直接告诉他只适配了国产浏览器就行了。
DigitaIOcean
2025 年 1 月 22 日
2B 为啥要人用 chromium ?
360 不香?
又不是个人项目
isbase
2025 年 1 月 22 日
看起来确实垃圾
loading
2025 年 1 月 22 日
国产系统是 Linux ,你这个涉及显卡,你不知道 Linus 的 F*k nvidia 吗?
国产变种就更搞不定了。
zizon
2025 年 1 月 22 日
首先你得
billlee
2025 年 1 月 22 日
> 从显卡厂商考虑,提高其兼容性应是其首要目标

To B 产品故意设置壁垒搞托拉斯才是常态

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

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

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

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

© 2021 V2EX