RenderScript on LLVM笔记
来源:互联网 发布:matlab mac 2015 编辑:程序博客网 时间:2024/04/28 04:56
Android 为何引入 Render Script:
3D 可移植 ( 直接用 opengl 也可以移植呀?)
性能
易用性 ( 让 opengl 难入门的人,用 Render Script ?)
Render Script 使用类似 C99 语法 + 一些扩展
目前使用 Render Script的 APP ( BOOKS, YouTube 等)
Render Script 包含的构件
llvm-rs-cc:
1) 把 RS 编译为 bitcode
2) 同时生成 调用 RS的 Java Layer 层代码
========= 背景知识 =========
对于一个 helloworld 程序
#include <stdio.h>int main() { printf("hello world\n"); return 0;}
可以用 Clang 直接编译,并运行
也可以生成 bitcode
而后用 lli 来解析运行 可以用bitcode反编译为 llvm 的中间汇编代码可以把 bitcode 用 llc 编译为 native的汇编
再用 gcc 编译为 可执行文件 ==================这里针对的是 C语言,而 RS 是一种类C语言,它通过改写 Clang扩展其语法
libbcc
libcc llvm-rs-cc 的生成的全部代码都再次使用 JIT生成 machine code (CPU/GPU/DSP)
RS编译得到的 bc 通过 libcc 生成 machine code
而调用 RC 的 Java代码也通过 Dalvik的 JIT生成 Native code
libRS ( runtime support)
1) 在 Dalvik Layer 管理 Script
2) 加入支持库 math funcs
总结:
Render Script 提供了一种 3D语言,并且编译平台无关中间代码,节约了APP Launch的时间
Render Script 有学习的代价,但学会应该比用 opengl简单
Render Script 可能还不够成熟
单就GPU, 直接使用 opengl ( 包括 Shader Language) 应该还是足够快的
Opengl 比较复杂,最好使用已经包装 opengl的引擎
参考:
http://llvm.org/docs/GettingStarted.html
https://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_liao.pdf
http://llvm.org/docs/BitCodeFormat.html
- RenderScript on LLVM笔记
- Android RenderScript 学习笔记
- LLVM笔记
- renderscript
- renderscript
- RenderScript
- Install LLVM on CentOS-5
- llvm 学习笔记一 编译llvm
- llvm 学习笔记 1 :gdb 调试 llvm
- LLVM 初学笔记
- LLVM 安装笔记
- llvm学习笔记(1)
- llvm学习笔记(2)
- LLVM学习笔记
- Let’s Work on an LLVM Superoptimizer
- Using multiple LLVM versions on Ubuntu
- Build LLVM (CMake + Clang + Ninja) on Windows
- LLVM笔记1:static profiling
- #include指令的作用
- Hbase 配置问题(ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldEx)
- android sdk——ImageView的使用
- HDU 4006 The kth great number
- ImageList控件(3)
- RenderScript on LLVM笔记
- phpcms v9 修改生成首页的位置
- 为什么Java的string类要设成immutable(不可变的)
- RTM-DSP项目总结
- 八种排序
- cheap nike shoes
- ZOJ ACM 1314(JAVA)
- 最优比例生成树最优比率生成树 01分数规划问题
- 8-16Android 学习ing