国产化自己绊自己?
今天闲来无事,详细说说适配国产化过程中的一些事。
话说自从用上 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 考虑,硬件的缺陷不应该通过软件方式修复,不然谷歌为何一直不修复这个看似很简单的问题。
联想一下,得出结论,国产自己绊自己脚?或者说是变相的保护主义?
国产化目前就=java+web ,你那个超纲了,还是老老实实 native 开发吧
“但为何不去做这个看起来很简单的适配”
其实就是公司人多,真正干活的人不知道你这个问题,跟你对接的人又傲慢或者内部信息不通畅,没有反馈到真正干活的人那里去。
类似的事情我是搞电商的,有很多小问题其实都不难处理,但是客户只能找客服,客服又傻,老是随便应付,每次都得遇到一些较真的人,各种投诉把事情闹大后问题才有可能反馈到我这来,等我去从头核实一遍情况的时候只能卧槽。
政府机构也有类似的情况,基层有问题随便应付,高层完全不知道下面发生了啥事情。
同感, 程序员要是能直接看到一线的问题, 不少都能顺手解决了. 我们也只是高频的问题才能得到运营的反馈🤣
客户才是最好的产品经理, 我们的产品也是用户天天用, 哪里顺不顺手, 都是用户感知最强
作为以身入局的国产化螺丝旋转工程师,我只能说现在国产化大部分 项目 的 第一目标 都是: 先验收通过!!!
至于其他的,兼容?标准化? 不在考虑范围。
硬件层级确实如一楼所说,超纲了,目前国产化的任何硬件都有坑,任何.
莫比国产化,只不过套壳子,底层都是开源那一套,
估计没有资源是真的没资源,毕竟国产化现在需求是刚需,满足刚需肯定是活下去的第一要务
显卡驱动有 bug 不是很常见的事情吗,谁来修的问题主要看谁强势,你看 chrome://gpu 里一大堆 Driver Bug Workarounds/Problems Detected 就知道 chrome 给那些各种各样显卡的 bug 擦了多少屁股了
想起来刚入行的时候前辈常说的一句话:“先跑起来再说”
25 年我们公司刚发的国产处理器笔记本比我刚淘汰下来的 i5 4200u 笔记本还卡,待机插电都会 24 小时发热,远程软件直接花屏,因为缺失对应的编码解码指令集,牛逼透了,我又重新自费买了台二手联想 y7000
稍微有点蹭国产化的 debuff ,是常规 bug ,但拿国产化标签讨论有点过。
“从显卡厂商考虑,提高其兼容性应是其首要目标”,硬件层面出于各种原因,故意限制其兼容性的例子太多了,所以这个前提有待商榷。从一个通用消费电子产品来说,应该不存在故意,可能更准确的说法是,使用有限的资源在有限的范围内提供兼容性。这个前提下,没有覆盖的场景出现 bug 是可预期的。
“硬件的缺陷不应该通过软件方式修复”,这个不能说错,但上游不修复,下游出个 workaround 算是常规操作吧。
需要一个过程
突然想起我自己负责的某个国产化,electron 应用在国产环境上启动白屏,查了一下是显卡渲染失败,最后强制 CPU 渲染才得
国际化品牌 苹果 难道不更应该批判?他家做的更绝
toB 项目,能兼容国产浏览器已经不错了,能验收了。信创环境也没人用 chromium 验收,怕啥。但是后真有人用 chromium 直接告诉他只适配了国产浏览器就行了。
2B 为啥要人用 chromium ?
360 不香?
又不是个人项目
看起来确实垃圾
国产系统是 Linux ,你这个涉及显卡,你不知道 Linus 的 F*k nvidia 吗?
国产变种就更搞不定了。
首先你得
从显卡厂商考虑,提高其兼容性应是其首要目标
To B 产品故意设置壁垒搞托拉斯才是常态
首先你得确定这个 gl 函数有规范明确的返回值类型和情况,才能说是不是 bug 吧.
公开市场的 bug 不是说是别人的就得等别人来修.
人不修你难道就不发布或者发布个不能用的东西出去么?
chrome 不修时因为这个显卡不是 nvdia,没有 ROI 去分配对应的测试开发适配人力.
等你真的像龙芯一样自己投入去主线了,自然有人会去争取主线上适配.
别说国产卡了
黄老板的卡在 linux 下打游戏问题都很大啊
反正都一样,既然 360 能跑起来,其他的就不用管了
有幸接触过国产化一段时间,那感觉真的是,一步一个坑啊。
不过仔细想想 Google 的逻辑也对,既然相应 api 没法获取该拿的信息,我就认为会影响到后面的使用,干脆不让你用,因此在 Google 看来没问题。确实我后面强制让程序运行起来了,画面帧率统计的功能也失效了。这个锅还得显卡厂商来修
甲方是做客户端的,用的 electron 套壳,没法国产浏览器上跑,不然露馅了喂
vivaldistatus.com/ forum.vivaldi.net/category/140/sync 目前 chrome 用于开发 edge 用过 正在用 bra…
不知道触发了哪个关键词,一直不让发,偶然看到有老哥贴了外链。 跟组长聊了聊职业规划 看完了,一定要保持学习 看完了 有点感触 多谢分享 > 还是那句话,保证自己的唯一性。…
首先, 我标题强调了程序员三个字, 是有原因的 因为外面随便搜索下, 都是什么 python 简单, 1 小时上手等等文章, 视频数不胜数 但我加上程序员, 是因为这里用户大多…