注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Crayon

只想做自己

 
 
 

日志

 
 

iOS Metal vs PlayStation  

2015-02-05 22:30:13|  分类: 开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Metal不单单是一个API,它是iOS中的一个framework,在iOS中系统资源都是封装成framework,app调用framework来调用系统和硬件资源,Metal主要包含以下这些其他API不支持的功能特性。

低消耗接口:消除潜藏的性能瓶颈,比如隐性的状态验证,可以用多线程并行创建和提交命令buffer。
内存和资源管理:buffer无类型化内存分配,texture定义为具体格式化的图像数据,保持CPU和GPU内存之间的一致性。
整合图形和通用计算操作:使用相同的数据结构和资源,专用的metal shading language同时支持图形和计算操作,Metal framework统一runtime,shader和computer共享资源。
预编译shader:Metal shader可以和app代码一同编译,然后加载到runtime。

iOS Metal vs PlayStation - Crayon - Crayon



 已经开始接近专用游戏机的开发了,那么和游戏机还有什么区别呢。

先看索尼的PS平台和传统架构的区别:
iOS Metal vs PlayStation - Crayon - Crayon
在PS3乃至所有PS平台,分为三种开发方式:High-level API,Low-level library和Direct access,在PS3上分别对应为PSGL,LibGCM和直接硬件开发,一般轻量级的游戏比如PSN的独立游戏可能会用PSGL,大厂商开发会用LibGCM。LibGCM是PS3的GPU,RSX的底层接口,Cell SPE还有专门的底层接口。然后,如果是第一方大作,比如顽皮狗的神秘海域系列,我们的末日,以及圣莫妮卡的战神,Guerrilla的杀戮地带等,则会有使用Direct access,PS3的硬件都支持Direct access,顽皮狗号称在开发神海3的时候对SPE使用了汇编开发,完全榨干PS3的性能。不用多说了直接硬件开发显然是性能最大化的方式,无视操作系统,无视接口,在游戏中写入所需的图形库和接口,这就是游戏机和通用设备的不同了。


顺便说说游戏运行上的区别
PS3的操作系统采用Hypervisor架构,系统分为两部分:Core OS和Game OS,当游戏运行时系统就切换到Game OS,整个系统专注运行这个游戏,当要打开其他程序时必须退出Game OS,退出游戏。说穿了如果要追求性能,不单单要做成单任务,还要做成独立运行模式。
而在iOS中,游戏也是app的一种,享受相同的系统管理,其中Metal framework位于iOS的media layer

iOS Metal vs PlayStation - Crayon - Crayon

media layer之下还有优先级更高的service和framework,比如电话,网络,照相,系统安全等等系统会优先分配资源。不过iOS的游戏还是有优化的,首先如果一个调用了GPU资源的游戏进入后台,那么他一定会被暂停或者说终止,因为iOS规定调用了硬件graphics资源的应用进入后台后,所有相关framework自动终止。然后当我们重新打开那个游戏发现确实暂停了但是加载很快,并不需要等待很久,以前有的人说是iOS设备处理速度快的成果,其实没那么简单,系统会自动将游戏的纹理和模型这些需要优先加载的项目保留进内存,然后自动清理其他那些占空间大但容易重启的项目,这样你进游戏重新加载才会如此神速。

BY:Crayon
  
  评论这张
 
阅读(555)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017