GL_OES_EGL_image_external_essl3 in compute shader get error

I am trying to do some image processing on decoded video frame in Android.

When I use GL_OES_EGL_image_external_essl3 extension in OpenGL Compute Shader to read the OES texture, some Android phones will give an error.

However, using the same extension in Fragment Shader is fine.

My Compute Shader Code:

#version 310 es
layout (location = 0) uniform mediump samplerExternalOES in_rgba; // oes
layout (rgba8, binding = 1) writeonly uniform mediump image2D out_rgba;
layout (location = 2) uniform highp vec2 in_y_size_rev;
layout(local_size_x=8,local_size_y=8,local_size_z=1) in;
void main() {
    precision highp int;
    precision highp float;
    ivec2 pos = ivec2(gl_GlobalInvocationID.xy);
    vec2 pos_norm = (vec2(pos) + 0.5f) * in_y_size_rev;
    vec4 rgba = texture(in_rgba, pos_norm); imageStore(out_rgba, pos, rgba);

My Host Code:

GLenum error = glGetError(); // GL_NO_ERROR
error = glGetError(); // !!!!!!GL_OUT_OF_MEMOR: 0x505 !!!!!!!

The GLES information of devices on which I can reproduce the error.   (By the way, all Adreno GPUs I tested works fine)

1. GLES: ARM, Mali-G76, OpenGL ES 3.2 v1.r18p0-01rel0.eb0c31071d41ebd807505c2a08a74d99

2. GLES: ARM, Mali-G76, OpenGL ES 3.2 v1.r18p0-01rel0.e098644a2658b0905d91d87153032847

3. GLES: ARM, Mali-G76, OpenGL ES 3.2 v1.r18p0-01rel0.4bdf67f8773978c3cc51394b4d92fc05

4. GLES: ARM, Mali-G76 MC4, OpenGL ES 3.2 v1.r20p0-01rel0.a41d1d553047de7edc8f79dbe3e575cd

5. GLES: ARM, Mali-G52 MC2, OpenGL ES 3.2 v1.r20p0-01rel0.3c1c24cb7710121ad59f6bdaee909f9f

Parents Reply Children
No data