2016-11-17 110 views
2

最小的失敗片段着色器編譯時失敗:從samplerExternalOES讀取紋理像素時

#version 320 es 
#extension GL_OES_EGL_image_external_essl3 : require 

precision highp float; 
precision highp int; 

vec4 x(samplerExternalOES sampler) { 
    return texture(sampler, vec2(0, 0)); 
} 

void main() { 
} 

在三星G-930P,與的OpenGL ES 3.2 [email protected](GIT @ I5bc0f577f9),此編譯失敗,與着色器日誌閱讀:

Internal compiler error: Error: array indexing out of boundary

在三星G-930F - 基本上是相同的手機,同樣採用Android版本,但是等與的OpenGL ES 3.2 v1.r12p1-00dev0.60546d7cd0bfd82d0ba92ca3bb825c75,它編譯 - 後者可以正確執行更復雜的着色器,從samplerExternalOES讀取texels。

這是G-930P上OpenGL ES實現中的錯誤嗎?這是一種不合理的方式來指定一個函數的參數,該函數想要在samplerExternalOES上調用texture

回答

1

Is this a bug in the OpenGL ES implementation on the G-930P?

它肯定看起來像它...

On a Samsung G-930F - essentially the same phone, same Android version, etc. however with OpenGL ES 3.2 v1.r12p1-00dev0.60546d7cd0bfd82d0ba92ca3bb825c75,

這不是如果你看一下手機中的一樣。

第一款手機(版本爲V145.0)基於採用Adreno GPU的Qualcomm Snapdradon,第二款(12p1)基於採用Mali GPU的三星Exynos。

對我來說,這看起來像是Adreno設備驅動程序中的錯誤,而馬裏的驅動程序正在正確處理它。