回复主题: FF12是如何把狭小的4MB EDRAM用到极致的?
作者:hourousha

原帖由 chenke 于 2011-7-4 17:24 发表
posted by wap, platform: UC

http://bbs.saraba1st.com/2b/read-htm-tid-480972.html
参考此帖

说实话看那贴喷了,还‘独占vif1总线,不走vu1,通过高带宽换取容量’。233……:o
不走vu1那独占vif1吃多了撑的?vu1<->vif1<->DMA。嫌PS2浮点运算太强所以把vu1闲置啊?
GIF本身撑到头就1.2G的带宽,是DMA带宽的一半,而所有从外部输入GS的数据都必须走GIF,独占vif不走VU1能有什么好处?

其实PS2优化说白了就几个要点。
1:并行化,DMA直接把纹理数据传输给GIF,同时CPU+VU0执行AI和物理运算操作,而VU1+VIF1执行顶点变换操作,完成后传给GIF,除了GIF传送外,其余部分可以并行执行,尽量占满DMA带宽。
2:缩水,纹理尽量少用32bit的,16bit就差不多了,8bit调色板纹理用好了也没太大问题,还有4bit调色板……说句题外的其实调色板用好了挺酷的,比如鬼武者3直接用Z-buffer+调色板直接得到大气散射值,个人就觉得挺神来一笔的。
3:降低每次渲染的纹理使用,可以用多步骤渲染完成,反正PS2是push buffer性质的,对batch size不太敏感。同时PS2的EDRAM也很适合multi-pass渲染。
因为GS像素功能落后且只有2-context,也就是说充其量顶多来个1-pass 2-texture,所以相对来说对texture buffer size要求并不是非常高,失策在不支持压缩纹理但也能将就用。像GC那样最多1-pass-8-texture,或XBOX的1-pass-4-texture如果也用这种texture buffer设计,那就是找死了。

[ 本帖最后由 hourousha 于 2011-7-4 18:01 编辑 ]



[登录后才可回复]