ComputeShader手机兼容性报告

转自:ComputeShader手机兼容性报告,最近可能要用到这个,所以看一下。

简介

Compute Shader是微软DirectX 11 API新加入的特性,在Compute Shader的帮助下,程序员可直接将GPU作为并行处理器加以利用,GPU将不仅具有3D渲染能力,也具有其他的运算能力,也就是我们说的GPGPU的概念和物理加速运算。多线程处理技术使游戏更好地利用系统的多个核心。故对其在手机上的支持情况做了如下测试与分析。

Android

利用WeTest测试213台手机,返回201台手机信息。具体测试信息如下:

OpenGL ES 3.2 GLSL Version 1.50 112台
OpenGL ES 3.1 GLSL Version 1.50 50台
OpenGL ES 3.1 GLSL Version 1.40 16台
OpenGL ES 3.0 GLSL Version 1.30 22台
OpenGL ES 2.0 GLSL Version 1.10 1台

利用WeTest测试Top100常用手机,返回99台手机信息。具体测试信息如下:

OpenGL ES 3.2 GLSL Version 1.50 58台
OpenGL ES 3.1 GLSL Version 1.50 22台
OpenGL ES 3.1 GLSL Version 1.40 10台
OpenGL ES 3.0 GLSL Version 1.30 9台

Android5.0开始支持Compute Shaders,来源如下: Android 5.0 API

在所有测试的Android手机中,OpenGL ES 3.1以上的手机均使用的是GLSL Version 1.45或GLSL Version 1.50,在使用unity提供的API SystemInfo.supportsComputeShaders在上述手机显示为true,但通过运行一段ComputeShader程序,在GLSL Version 1.45上运行结果却不符合预期。

综上所述,GLSL Version 1.50开始支持ComputeShader。但文档说OpenGL ES 3.1就已经支持,unity API返回结果也是如此,为什么GLSL Version 1.45不支持还有待探讨。

iOS

根据苹果开发文档,从iOS 9开始支持Compute Shaders: iOS 9.0

iPhone所使用的图形API为Metal,ComputeShader在iphone6 ios10 系统已经支持(再早的iphone手机由于没有测试设备,没有分析)。 以上测试方法是通过两方面进行,一是使用unity提供的API SystemInfo.supportsComputeShaders在上述设备显示为true,二是通过运行一段ComputeShader程序,运行结果也符合预期。

总结

  1. ComputeShader技术在Android上运行要求:GLSL Version 1.50的设备(OpenGL ES 3.1及以上设备大部分满足此条件,少数3.1的设备不满足)。

  2. ComputeShader技术在iOS上运行要求:系统软件最低为iOS 9(iPhone6之前的因缺乏设备未能测试,有需要的看官请自行测试)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
URP(Universal Render Pipeline)是Unity引擎中的一种渲染管线,而Compute Shader是URP中的一种功能,用于在GPU上进行并行计算。Compute Shader可以用来执行各种计算任务,例如图像处理、物理模拟、粒子系统等。 URP Compute Shader提供了一种在GPU上进行高性能计算的方式,它可以利用GPU的并行计算能力来加速复杂的计算任务。与传统的图形渲染不同,Compute Shader不需要与图形渲染管线交互,它可以独立于渲染过程进行计算。 使用URP Compute Shader可以带来以下优势: 1. 并行计算:Compute Shader可以同时在多个线程上执行计算任务,充分利用GPU的并行计算能力,提高计算效率。 2. 高性能:由于在GPU上执行,Compute Shader可以利用硬件加速,提供更高的计算性能。 3. 灵活性:Compute Shader可以执行各种类型的计算任务,不仅限于图形渲染,可以用于各种领域的并行计算需求。 使用URP Compute Shader的基本步骤如下: 1. 创建Compute Shader:在Unity中创建一个Compute Shader文件,并编写需要执行的计算任务代码。 2. 创建Compute Buffer:创建一个Compute Buffer对象,用于在CPU和GPU之间传递数据。 3. 设置Compute Shader参数:将需要的参数传递给Compute Shader,例如输入数据、输出数据等。 4. 调度Compute Shader:使用Graphics类的Dispatch方法来调度Compute Shader的执行。 5. 获取计算结果:在计算完成后,可以从Compute Buffer中获取计算结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值