关于AS3语言Flash的Stage3D在不同的AGAL版本中寄存器的数量限制

来源:互联网 发布:软件开发安卓 编辑:程序博客网 时间:2024/05/17 04:44


Stage3D是adobe推出的基于flash的图形GPU加速API。

从11.4开始,到今天发文为止是flash player 26。

https://helpx.adobe.com/cn/flash-player/release-note/fp_26_air_26_release_notes.html


今天我们来总结一下,AGAL的相关资料汇总:


AGAL主要靠 AGALMiniAssembler.as 编译成Shader。

虽然是像类似汇编的低级写法,但和HLSL,CG,GLSL那种高级语法原理一样。

要获取 AGAL 的最新版本,请访问 :

https://github.com/adobe-flash/graphicscorelib/tree/master/src/com/adobe/utils



下面这张表是从AGAL1,AGAL2,AGAL3寄存器的数量限制。




接下来是显存资源限制:

资源允许的创建的数量总内存Vertex buffers4096256 MBIndex buffers4096128 MBPrograms409616 MBTextures4096128 MBCube textures4096256 MB

AGAL1 限制:每个程序 200 个 opcode (行数)。

AGAL2 限制:每个程序 1024 个 opcode(行数)

AGAL3 限制:每个程序 2048 个 opcode(行数)

绘制调用限制:每个 present() 调用 32,768 个 drawTriangles() 调用。




纹理限制:

纹理最大大小GPU 总内存常规纹理(扩展基准以下)2048 x 2048512 MB常规纹理(扩展基准和扩展基准以上)4096 x 4096512 MB矩形纹理(扩展基准以下)2048 x 2048512 MB矩形纹理(扩展基准和扩展基准以上)4096 x 4096512 MB立方体纹理1024 x 1024256 MB

512 MB 是纹理的绝对限制,包括 mipmap 所需的纹理内存。但对于立方体纹理,内存限制为 256 MB。




在flash player 26 中 AGAL 4 :

引入了一种新的操作码“tld”和新的顶点取样器寄存器“vs”,以在顶点着色器中获取纹理。“tld”类似于在片段着色器中使用的“tex”操作码。但与“tex”操作码不同,“tld”需要详细级别 (LOD) 的值作为参数,因为 GPU不支持自动计算顶点着色器中的 LOD。


调试版的debug flash player从这儿下载:

http://www.adobe.com/support/flashplayer/debug_downloads.html


Adobe AIR的SDK从这儿下载:

http://www.adobe.com/devnet/air/air-sdk-download.html


这里顺便也提供Flash player官方的卸载器
http://helpx.adobe.com/flash-player/kb/uninstall-flash-player-windows.html


最新版的谷歌浏览器Google Chrome不支持flash怎么办?解决方法

chrome://flags/#run-all-flash-in-allow-mode


后续如果有发现其它,继续更新整理。。。

原创粉丝点击