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,來源如下:

https://

developer。android。google。cn

/about/versions/android-5。0

在所有測試的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

https://

developer。apple。com/lib

rary/archive/releasenotes/General/WhatsNewIniOS/Articles/iOS9。html#//apple_ref/doc/uid/TP40016198-SW1

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之前的因缺乏裝置未能測試,有需要的看官請自行測試)

感謝熱心網友提醒,已將文中Shader Model提法改為GLSL Version,參考文件Detecting the Shader Model