Vulkan 02
https://www.imgtec.com/blog/vulkan-high-efficiency-on-mobile/
vulkan性能上的优势
降低CPU开销
drawcall上限数量增加
However, that’s a performance problem, and this post is supposed to be about efficiency! However this illustrates an important point, even when an application doesn’t hit this bottleneck, each draw call is still doing unnecessary work – it certainly isn’t free. The Gnome Horde demo is just an attempt to visualize this in an obvious way, but the problem is pervasive in all OpenGL ES applications.
这段对我。。。。很有启发 我之前只做bottleneck, of course 任何地方的下降都能省些电, 这就意味着不在bottle上的 低优先级也要开task
system on chip
die 是芯片的意思。。。。
去掉了 run time error detecting 来节省开销 这样程序直接挂。。
额外加vkayer catch error 调试的时候
explicit management用 fence sync objects, queries and memory barriers
PSO的出现原因
之前看metal文档 编shader和渲染状态互相耦合
这里给了一个例子
programable blending 会把render state patch到ps里
和苹果那里讲的一样 换了renderstate ps就要对应重新编
PSOs are responsible for possibly the most dramatic saving of CPU work during draw command generation, as they handle all the validation, compilation and translation of this API state to GPU code.
用pso把这部分完全剥离 降低cpu开销
像引擎一般会做pso的cache
切cache就行了
cmd buffers 复用
多线程:多核低功率跑
这篇总结起来 就是vulkan 给了你很多 在cpu这边省很多电 的机会 需要用对
GPU efficiency之后谈
- High efficiency on mobile
- Scaling to multiple threads
- Explicit operation and consistent frame times
- Architecture positive: how the Vulkan API works for PowerVR GPUs
https://www.imgtec.com/blog/5-new-webinars-on-the-vulkan-api/
Vulkan 02的更多相关文章
- [译]Vulkan教程(02)概况
[译]Vulkan教程(02)概况 这是我翻译(https://vulkan-tutorial.com)上的Vulkan教程的第2篇. This chapter will start off with ...
- Vulkan Tutorial 02 编写Vulkan应用程序框架原型
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 General structure 在上一节中,我们创建了一个正确配置.可运行的的V ...
- Kotlin中变量不同于Java: var 对val(KAD 02)
原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 201 ...
- Android游戏开发实践(1)之NDK与JNI开发02
Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...
- iOS系列 基础篇 02 StoryBoard 故事板文件
iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyb ...
- [转]Tesseract 3.02中文字库训练
下载chi_sim.traindata字库下载tesseract-ocr-setup-3.02.02.exe 下载地址:http://code.google.com/p/tesseract-ocr/d ...
- Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
本章对ReentrantLock包进行基本介绍,这一章主要对ReentrantLock进行概括性的介绍,内容包括:ReentrantLock介绍ReentrantLock函数列表ReentrantLo ...
- Oracle Recovery 02 - 常规恢复之不完全恢复
背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份. 实验环境:RHEL6.4 + Oracle 11.2.0.4 单实例. 二.常规恢复之不完全恢复:部分数据丢失 2.1 重做日志文件 ...
- 异步编程系列第02章 你有什么理由使用Async异步编程
p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...
随机推荐
- Asp.Net Core Identity 完成注册登录
Identity是Asp.Net Core全新的一个用户管理系统,它是一个完善的全面的庞大的框架,提供的功能有: 创建.查询.更改.删除账户信息 验证和授权 密码重置 双重身份认证 支持扩展登录,如微 ...
- [转帖]HTTP请求方法:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE 说明
HTTP请求方法:GET.HEAD.POST.PUT.DELETE.CONNECT.OPTIONS.TRACE 说明 平时的Rest开发,用到的都是GET,POST,PUT,DELETE类型的请求. ...
- MySQL 新建用户,为用户授权,指定用户访问数据库
1.登录MySQL mysql -u root -p 2.添加新用户(允许所有ip访问) create user 'test'@'*' identified by '123456';(test:用户名 ...
- Qt程序开机自动运行
一.写入注册表需要管理员权限 1.开发中生成并运行程序需要写入注册表时,应该以管理员权限打开项目: 2.点击程序运行需要写入注册表,则应该以管理员权限打开此程序. 二.实现 void MoreSetW ...
- SecureCRT SSH 失败 Key exchange failed 解决方法
背景:SecureCRT 的SSH正常使用过程中,突然出现: Key exchange failed. No compatible hostkey.The server supports these ...
- pipreqs 生成项目依赖的第三方包
项目开发的时候,总是要搭建和部署环境. 如果项目使用virtualenv环境,直接使用使用命令行pip freeze可以帮助我们自动生成项目所需要的环境 requirements.txt文件 $ pi ...
- 单例模式中volatile关键字的作用
背景&问题 在早期的JVM中,synchronized存在巨大的性能开销.因此,有人想出了一个"聪明"的技巧:双重检查锁定(Double-Checked Locking). ...
- python笔记007-函数
昨日简要: 1.文件操作: 1.1获得句柄: f = open(‘one.txt’,mode=’’,encoding=’utf-8’) f = open(‘../’) à返回上一层 f = open( ...
- go 构造切片slice
定义切片 make([]int, 5) 长度和容量均为5 make([]int, 0, 5) 长度为0 容量为0 切片 slice2[3:5] 对slice2进行切片返回 第3 4 两个元素 不包含 ...
- SQL Server 2017 左补齐
DECLARE @NUM CHAR(3)='7 'SELECT RIGHT('0000000'+CONVERT(VARCHAR(50),1+ RTRIM(@NUM)),7)