您的位置:首页 > 其它

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

2017-07-05 16:52 471 查看
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 buffers
4096256 MB
Index buffers
4096128 MB
Programs
409616 MB
Textures
4096128 MB
Cube textures
4096256 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

后续如果有发现其它,继续更新整理。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  as3 adobe agal stage3d flash3d