SwiftShader 是一款用于在 CPU 上进行高性能图形渲染的软件库。Google 已经在很多产品中使用该内容库,包括 Chrome、Android 开发工具和云服务。Swiftshader 从今天开始完全开放源码,扩展了其应用范围。

自 2009 年起,Chrome 就开始使用 SwiftShader 在不完全支持硬件加速渲染的系统上进行 3D 渲染。虽然为 GPU 写入了 WebGL 等 3D 内容,但有些用户的设备没有可执行此内容的图形硬件。其他设备可能包含存在严重错误的驱动程序,导致 3D 渲染不可靠,或甚至不可实现。Chrome 在这些系统上使用 SwiftShader,以确保 3D 网页内容对所有用户可用。

在 GPU 不合适(左图)的设备上不使用 SwiftShader 的 Chrome 无法运行 WebGL Globe 实验。在同一设备上,启用 SwiftShader 后(右图)则完全可以对内容进行渲染。

SwiftShader 实现 Chrome 和 Android 使用的相同的 OpenGL ES 图形 API。SwiftShader 开放源码将促使其他浏览器供应商普遍支持 3D 内容,从而使网站平台作为一个整体向前发展。具体而言,无条件的 WebGL 支持将允许网站开发人员创建更具吸引力的内容,例如休闲游戏、教育应用、合作内容创作软件、产品展示和虚拟游览等。SwiftShader 在云服务领域也有应用,实现了在无 GPU 系统上的渲染。

为了向用户提供最佳性能,SwiftShader 使用多种方法高效地在 CPU 上执行图形计算。动态代码生成使在运行时针对现有任务自定义代码成为可能,与更常见的编译时优化完全不同。通过使用 Reactor 简化这种复杂的方法,Reactor 是一种自定义 C++ 嵌入式语言,具有直观的命令式语法。SwiftShader 还可以单指令多线程 (SIMT) 方式使用向量运算,并结合使用多线程技术来提高 CPU 可用内核和矢量单元之间的并行性。这样可实现实时渲染,其用途包括在 Android 上进行应用串流等。

开发者可从其 Git 存储库访问 SwiftShader 源代码。注册邮件列表,了解最新的开发资讯,并与开源社区的其他 SwiftShader 开发者展开合作。

开源地址:https://github.com/google/swiftshader

预编译的文件下载:https://goo.gl/5MOcdb

开源通用型渲染工具-SwiftShader--OpenGL的替代者的更多相关文章

  1. 【开源】微信小程序、小游戏以及 Web 通用 Canvas 渲染引擎 - Cax

    Cax 小程序.小游戏以及 Web 通用 Canvas 渲染引擎 Github → https://github.com/dntzhang/cax 点我看看 DEMO 小程序 DEMO 正在审核中敬请 ...

  2. 开源通用爬虫框架YayCrawler-开篇

    各位好!从今天起,我将用几个篇幅的文字向大家介绍一下我的一个开源作品--YayCrawler,其在GitHub上的网址是:https://github.com/liushuishang/YayCraw ...

  3. [转]Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...

  4. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...

  5. 通用型CRM还是行业型CRM?-定制为王

    大数据时代,怎样利用工具摆脱繁杂的数据管理之苦,洞察有价值的销售信息,是每一个管理者的迫切须要.Zoho  CRM问世10年来,见证了一个个行业客户怎样在CRM帮助下实现了效率和业绩提升.相同,广泛的 ...

  6. 城市经纬度 json 理解SignalR Main(string[] args)之args传递的几种方式 串口编程之端口 多线程详细介绍 递归一个List<T>,可自己根据需要改造为通用型。 Sql 优化解决方案

    城市经纬度 json https://www.cnblogs.com/innershare/p/10723968.html 理解SignalR ASP .NET SignalR 是一个ASP .NET ...

  7. NNI (Neurol Network Intelligence) 是微软开源的自动机器学习工具

    NNI (Neurol Network Intelligence) 是微软开源的自动机器学习工具 https://www.cnblogs.com/ms-uap/p/9719071.html [重磅]微 ...

  8. [转] Google 开源 iOS 应用测试工具:EarlGrey

    Google 开源 iOS 应用测试工具:EarlGrey oschina 发布于: 2016年02月18日 (3评) 分享到:    收藏 +53 3月19日,深圳源创会火热报名中,go>&g ...

  9. 【原创】NES第一波:如何用通用型6502宏汇编器,制用NES/FC游戏。

    在163的博客关了呀.在这边重新开张了. 以后若网友有什么要长篇解答的问题,也在这儿作答. 作为第一波原创文章,我打算做一次小白示范.那就是一步一步的展示某个汇编编译器的用法. 一.科普 很多人认为程 ...

随机推荐

  1. 动态SQL(章节摘要)

    1,使用动态SQL能够在依赖对象不存在时创建子程序. 2.动态SQL主要利用EXECUTE IMMEDIATE语句运行DML,DDL,DCL等语句操作. 3,假设使用了绑定变量,则必须在EXECUTE ...

  2. c#中的 数组

    数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素. 数组是具有相同类型的一组数据.当访问数组中的数据时,可以通过下标来指明.c#中数组元素可以为任何数据类型,数 ...

  3. Mockito 中被 Mocked 的对象属性及方法的默认值

    在 Java 测试中使用 Mockito 有段时日了,以前只是想当然的认为 Mock 的对象属性值和方法返回值都是依据同样的规则.基本类型是 0, 0.0, 或 false, 对象类型都是 null, ...

  4. [leetcode]Best Time to Buy and Sell Stock III @ Python

    原题地址:https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/ 题意: Say you have an array ...

  5. [leetcode]N-Queens @ Python

    原题地址:https://oj.leetcode.com/problems/n-queens/ 题意:经典的N皇后问题. 解题思路:这类型问题统称为递归回溯问题,也可以叫做对决策树的深度优先搜索(df ...

  6. 【Eclipse】Eclipse-Build-缓慢-卡住

    Eclipse-Build-缓慢-卡住 eclipse building workspace 卡主_百度搜索 解决building workplace 导致的卡死,使得eclipse加速 - CSDN ...

  7. z-index的堆叠规则

    原文: https://www.cnblogs.com/starof/p/4424926.html 对于所有定位,最后都不免遇到两个元素试图放在同一位置上的情况.显然,其中一个必须盖住另一个.但,如何 ...

  8. 3D打印机开源、免费分层软件介绍

    分层软件,就是把3D模型按照层厚设置按照Z轴方向分层,并得到G代码,供设备使用.基本上3D打印机都自带了控制软件,对于想自己开发3D打印机的朋友来说,已经有很多国外的免费或者开源的分层软件可以直接使用 ...

  9. ASP入门(二十)-INSERT、UPDATE、DELETE语句

    插入记录 INSERT INTO 语句 单条记录插入语法 INSERT INTO target [(field1[, field2[, ...]])] VALUES (value1[, value2[ ...

  10. Discuz常见小问题-如何人为地添加用户并分配小组

    进入后台,在用户-添加用户中可以人为添加用户并分配权限