V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
seanwhy
V2EX  ›  程序员

国产化自己绊自己?

  •  
  •   seanwhy · 3 小时 49 分钟前 · 3006 次点击
    今天闲来无事,详细说说适配国产化过程中的一些事。
    话说自从用上 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 考虑,硬件的缺陷不应该通过软件方式修复,不然谷歌为何一直不修复这个看似很简单的问题。
    联想一下,得出结论,国产自己绊自己脚?或者说是变相的保护主义?
    28 条回复    2025-01-22 14:40:35 +08:00
    murmur
        1
    murmur  
       3 小时 48 分钟前   ❤️ 1
    国产化目前就=java+web ,你那个超纲了,还是老老实实 native 开发吧
    uqf0663
        2
    uqf0663  
       3 小时 38 分钟前   ❤️ 13
    “但为何不去做这个看起来很简单的适配”
    其实就是公司人多,真正干活的人不知道你这个问题,跟你对接的人又傲慢或者内部信息不通畅,没有反馈到真正干活的人那里去。

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

    To B 产品故意设置壁垒搞托拉斯才是常态
    zizon
        21
    zizon  
       1 小时 59 分钟前
    首先你得确定这个 gl 函数有规范明确的返回值类型和情况,才能说是不是 bug 吧.

    公开市场的 bug 不是说是别人的就得等别人来修.
    人不修你难道就不发布或者发布个不能用的东西出去么?

    chrome 不修时因为这个显卡不是 nvdia,没有 ROI 去分配对应的测试开发适配人力.
    等你真的像龙芯一样自己投入去主线了,自然有人会去争取主线上适配.
    JensenQian
        22
    JensenQian  
       1 小时 53 分钟前
    别说国产卡了
    黄老板的卡在 linux 下打游戏问题都很大啊
    JensenQian
        23
    JensenQian  
       1 小时 52 分钟前
    @JensenQian 反正都一样,既然 360 能跑起来,其他的就不用管了
    liuguangxuan
        24
    liuguangxuan  
       1 小时 41 分钟前
    有幸接触过国产化一段时间,那感觉真的是,一步一个坑啊。
    seanwhy
        25
    seanwhy  
    OP
       1 小时 2 分钟前
    @zizon 不过仔细想想 Google 的逻辑也对,既然相应 api 没法获取该拿的信息,我就认为会影响到后面的使用,干脆不让你用,因此在 Google 看来没问题。确实我后面强制让程序运行起来了,画面帧率统计的功能也失效了。这个锅还得显卡厂商来修
    seanwhy
        26
    seanwhy  
    OP
       1 小时 1 分钟前
    @DigitaIOcean 甲方是做客户端的,用的 electron 套壳,没法国产浏览器上跑,不然露馅了喂
    prosgtsr
        27
    prosgtsr  
       31 分钟前
    @uqf0663 这说明问题不重要,如果充值功能有 bug 第一时间就反应过来了。。
    想开点。这样让开发的精力和时间能投入到带来更多流水和利润的地方去,这对各方都是最优解。。
    HenryDai
        28
    HenryDai  
       7 分钟前
    个人有幸在某 ToG 的软件开发公司待过 1 年半,国产化这个东西挺坑的,比如 Tomcat 的变种 金蝶 东方通( Springboot 为什么不能用因为 jar 里面有 Tomcat ),Linux 上有麒麟 v10,还有统信的 UOS(扫一扫获取 root 权限真的无语)。数据达梦和变种的 PG 。
    我感觉代码能力没怎么提高,很多时候都是在做这种吃屎的事情。我为了部署方便使用了 docker ,上面的人提需求,怎么让别人不能进入 docker 容器内部(你都能用 docker 了权限不是随便拿),还有给开源软件上自己的 license 宣城自己研发(偷偷违背开源协议)
    其实都是的蛋糕问题,使用国产软件是控标项之一。比如我有个二舅魔改了一个 linux 系统,为了推动国产化 必须要用二舅国产系统,不买二舅的系统就不配围标,说你资质不够。
    我对这个国产化是一个十分悲观的态度,我现在已经逃离。。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5514 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:47 · PVG 14:47 · LAX 22:47 · JFK 01:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.