美文网首页
2022-07-05 commandbuffer

2022-07-05 commandbuffer

作者: SMSM | 来源:发表于2022-07-05 19:45 被阅读0次

blink中走cmd的意义 https://www.chromium.org/developers/design-documents/gpu-command-buffer/#goals

  1. 安全性。分配一个texture,buffer内可能存在上个页面的密码、用户信息等内容。
  2. Chromium GPU 兼容性,收口方便统一处理。
  3. 跨进程IPC通信,cmd减少ipc服务端频繁通信的成本。
  1. 小程序场景。
    1.1 通信层
    1.1.1 走jsbridge,通信成本高,通信成本 和 cmdbuffer encode的js运行成本之间的pk。jsc无jit无加速。大量调用才有优势。
    1.1.2 走binding,通信成本不高。cmd的优势是可 回放、跨进程IPC时的高效性。
    1.1.3 是否存在跨进程成本。

1.2
图形api驱动层
绘制10个 绘制1000个三角形 对gpu的影响无差异,但是分批的话由于调用驱动的通信成本高,对cpu的性能有影响。所以要合并数据集的合批处理。

分层级 渲染API 图形API

From RenderLayers to GraphicsLayers

Chromium GPU 渲染的流程大汇总。
https://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome/

案例 https://github.com/HelloHuDi/AndroidReverseNotes/blob/master/docs/weixin_7.0.4_source/%E5%8F%8D%E7%BC%96%E8%AF%91%E6%BA%90%E7%A0%81/%E5%8F%8D%E6%B7%B7%E6%B7%86%E5%90%8E/src/main/assets/wxa_library/commandbuffer.js

  1. 二进制模式,encode decode是如何做的呢?解析。每个command长度是固定的。所以不需要编码时加入结束标记。解码时,从第一个command开始读取。对于string这种变长的,则编码时第二个代表len,从第三位开始为内容。
  2. 为了达到每个command都是长度可固定原则。不允许重载函数。比如texImage2D的入参可有很多种组合。每个组合被定义为独立的commnd_id。比如。
    commandBufferData.pushInt32Array([28, a, b, c, d, e], 6);
    commandBufferData.pushInt32Array([29, a, b, c, d, e, f, g, h], 9);
  3. 四字节对齐。
  4. 需要同步时,则立即执行batchrender。
  5. 资源类obj是在js中构建管理的。对二进制模式传递的都是 index_id。 program。
    createProgram: function () {
    var data = _(this);
    checkContextChange(data.ctxid);
    commandBufferData.pushInt32(10);
    var program = {};
    var programId = commandBufferData.batchRender();
    data.programObjs.set(program, programId);
    data.webglObjs.set('Program-' + programId, program);
    return program;
    },

相关文章

  • 2022-07-05 commandbuffer

    blink中走cmd的意义 https://www.chromium.org/developers/design-...

  • 使用CommandBuffer实现描边效果

    使用CommandBuffer实现描边效果 1.什么是CommandBuffer2.C#脚本常用命令3.描边实现思...

  • Unity3D iOS 原生层更新Texture

    通过CommandBuffer.IssuePluginCustomTextureUpdate(IntPtr cal...

  • Unity3DCommandBuffer的基本使用

    先介绍一下什么是CommandBuffer,在DX或者OPENGL里面,都有一个RenderBuffer,U3D也...

  • 2022-07-05

    Nat Immu | CD8+ T细胞组织特异分化图谱 原创mumu图灵基因2022-07-05 08:03发表于...

  • 幼儿的心理发展

    杨素芳 中原焦点团队 高五 坚持分享1619天 2022-07-05 1、游戏是幼儿的主要活动,幼儿在游戏...

  • 暴雨

    2022-07-05 18:55 忽然,天色阴暗,雷鸣过后,暴雨倾盆而下,哗哗作响,让人措手不及。这雨无法在镜头上...

  • 读书笔记

    中原焦点团队 坚持分享1449天 2022-07-05 今天,共读《建构解决之道》第五天,我们读到“自然同理的...

  • 一篇雨滴效果实现的学习笔记

    前两天看到一篇关于雨滴效果制作的文章,学习实践了一下。这里贴一下涉及到的知识点。 1.CommandBuffer ...

  • 0246觉察日记|每一天都值得活

    2022-07-05 北京 晴天 雨天相信分享有价值。让每一天都值得活。上周读完了凡四训[https://www....

网友评论

      本文标题:2022-07-05 commandbuffer

      本文链接:https://www.haomeiwen.com/subject/rjnsbrtx.html