2.Optimising Geometry

  Interleaving Attributes

VBO

Draw call size

Triangle Size  32个像素/primitive    ---3vertex so 10pixel/vertex

Face Culling

Sorting Geometry

  Distance

  Render state

Z Pre-pass 不推荐做 因为没用 会有额外clocks 和bandwidth开销

3.Texture

texture size 不是越大越好,大的会费memory和引起cachemissing,最近的时候texel:pixel为1:1,一定用压缩。

NPOT  not power of two

512x128 是POT

NPOT使用GL_CLAMP_TO_EDGE 用默认repeat会有error

有扩展专门处理它 GL_IMG_texture_npot

推荐使用32的倍数

推荐不要使用NPOT 性能下降 涉及mipmaplevel  sizeofTexture target platform

Texture Compression

他家有工具PVRTexTool

PVRTC特点是smaller memory footprint省电

jpc等等是image compression 会在system memory里解压

PVRTC压缩状态直接提交graphic core使用

mipmap 减小cachemissing降低带宽 反走样 memory开销增加

Texture Sampling

dependent texture read 会有fetch texture开销 如果有复杂alu开销可以 通过调度把fetch 开销给掩盖掉

vertex shader lookup 是dependent texture read

只用varying的部分通道比如zw也算 dependent texture read

Texture2DProj() 参数Vec3 或者Vec4有无效的w也是dependent texture read

尽量在vs里算uv 即使PowerVR对此有一定优化, Rouge better than SGX

Texture Uploading

非压缩的tex 是line-scan-line format读取

压缩tex 是block-by-block读取

texture 初始化时传入 最好用他们画一遍trangle 这样可以warm up

颜色用lowp

浮点数                                  精度                整数范围

FP32 highp             ,,[2^31-1,-2^31]

FP16 Mediump [-65504.0,65504.0],,[2^15-1,-2^15] --32768   1 5 11

十位定的小数 lowp   [-2.2], 1/256, [2^9-1,-2^9]

https://docs.unity3d.com/Manual/SL-DataTypesAndPrecision.html

手机 float highp

half Mediump

浮点数精度这里,抄个东西在手机上遇到half的问题

pc上没有这个问题,原来pc会自动把half转为float处理 怪不得我就奇怪他们都是FP16为什么只有手机有问题。。

性能三 powerVR specfication的更多相关文章

  1. 【性能测试】性能测试总结<一>

    目录: 一. 什么是软件性能 二.不同群体眼中的性能 三.性能测试类型 四.性能测试应用场景 五.性能测试基本概念 正文: 一. 什么是软件性能 定义:软件的性能是软件的一种非功能特性,它关注的不是软 ...

  2. JAVA IO分析三:IO总结&文件分割与合并实例

    时间飞逝,马上就要到2018年了,今天我们将要学习的是IO流学习的最后一节,即总结回顾前面所学,并学习一个案例用于前面所学的实际操作,下面我们就开始本节的学习: 一.原理与概念 一.概念流:流动 .流 ...

  3. Oracle 优化和性能调整

    分析评价Oracle数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即:  数据库用户响应时间=系统服务时间+用户等待时间  因此 ...

  4. Netty 系列之 Netty 高性能之道 高性能的三个主题 Netty使得开发者能够轻松地接受大量打开的套接字 Java 序列化

    Netty系列之Netty高性能之道 https://www.infoq.cn/article/netty-high-performance 李林锋 2014 年 5 月 29 日 话题:性能调优语言 ...

  5. mysql 数据库引擎

    一.数据库引擎 数据库引擎是用于存储.处理和保护数据的核心服务.利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求. 使用数据库引擎创建用于联机事务处理或 ...

  6. Netty 系列之 Netty 高性能之道

    1. 背景 1.1. 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用 Netty4 + Thrift 压缩二进制编解码技术,他们实现了 10 W TPS(1 K 的复杂 POJO 对象)的跨 ...

  7. 相克军_Oracle体系_随堂笔记001-概述

    一.Oracle官方支持 1.在线官方文档 http://docs.oracle.com/ 2.metalink.oracle.com,如今已经改成:http://support.oracle.com ...

  8. Asp.net 面向接口可扩展框架之使用“类型转化基础服务”测试四种Mapper(AutoMapper、EmitMapper、NLiteMapper及TinyMapper)

    Asp.net 面向接口可扩展框架的“类型转化基础服务”是我认为除了“核心容器”之外最为重要的组成部分 但是前面博文一出,争议很多,为此我再写一篇类型转化基础服务和各种Mapper结合的例子,顺便对各 ...

  9. 《In Search of an Understandable Consensus Algorithm》翻译

    Abstract Raft是一种用于管理replicated log的consensus algorithm.它能和Paxos产生同样的结果,有着和Paxos同样的性能,但是结构却不同于Paxos:它 ...

随机推荐

  1. ROS初探--意义、基本模块

    顾虑就使我们都变成了懦夫,使得那果断的本色蒙上了一层思虑的惨白的容颜,本来可以做出伟大的事业,由于思虑就化为乌有了,丧失了行动的能力.-----哈姆雷特 ROS: Robot Operating Sy ...

  2. [转帖]Apache Kylin 概述

    Apache Kylin 概述 https://www.cnblogs.com/xiaodf/p/11671095.html 1 Kylin是什么 今天,随着移动互联网.物联网.AI等技术的快速兴起, ...

  3. C++ 用 new 生成一个动态二维数组

    //Microsoft Visual Studio 2015 Enterprise //变长二维数组 #include <iostream> #include<iomanip> ...

  4. Java字符串定义及常用方法

    String.StringBuffer和StringBuilder   String修饰的是不可变的字符串,而StringBuffer和StringBuilder类的对象是可以被修改的.   Stri ...

  5. opencv模块学习

    一.简介 ''' 分辨率(resolution,港台称之为解析度)就是屏幕图像的精密度,是指显示器所能显示的像素的多少.由于屏幕上的点.线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同 ...

  6. vue 下拉刷新数据的插件的使用:

    1.安装: npm i vue-scroller -S npm install vue-scroller -D 2.在需要加载的页面中引入,或在公共js文件中引入: import VueScrolle ...

  7. Shiro简介、入门案例、web容器的集成

    目的: shiro简介 Shiro入门案例 Shiro与web容器的集成 shiro简介(中文官网:https://www.w3cschool.cn/shiro/andc1if0.html) 1.什么 ...

  8. hdu1501 记忆化搜索。。。

    Problem Description Given three strings, you are to determine whether the third string can be formed ...

  9. C# 卡控时间输入

    int hour = (int.Parse(DateTime.Now.Hour.ToString())) * 60;        int minute = int.Parse(DateTime.No ...

  10. 手把手教小白安装Erlang

    Erlang(['ə:læŋ])是一种通用的面向并发的编程语言,它有瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境. Erlang官网:htt ...