AnsweredAssumed Answered

NoCompilerFound at memory location

Question asked by chenmo on Jan 10, 2020
Latest reply on Jan 13, 2020 by dorisyan

Hi guys, I am a game programmer using UE4, I am integrating Mali OpenGLES Emulator into UE4.

After some modification, I met the situation that the shader cannot be compiled, it throw a exception in the dll of the emulator, "gles::glessl::NoCompilerFound at memory location 0x00000067874AA270".

And after I enabled EGL debug, I saw the log which seemd that the emulator processed the original shader to 430 shader.

I list the output here:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

[2020.01.10-12.53.51:876][  0]LogRHI: Warning: [API][Error][Notification][9829] GLES: (gles::_after_gl_shader_source_call 52) ORIGINAL SOURCE:
=====
#version 310 es
INTERFACE_LOCATION(0) out highp vec4 out_Target0;
void main()
{
 out_Target0.xyzw = float4(1.0, 1.0, 1.0, 1.0);
}

====

[2020.01.10-12.53.51:876][  0]LogRHI: Warning: [API][Error][Notification][9878] GLES: (gles::_after_gl_shader_source_call 53) PROCESSED SOURCE:
=====
#version 430

vec4 mix(vec4 v1, vec4 v2, bvec4 a) { return vec4( a.x?v2.x:v1.x, a.y?v2.y:v1.y, a.z?v2.z:v1.z, a.w?v2.w:v1.w  );  }
vec3 mix(vec3 v1, vec3 v2, bvec3 a) { return vec3( a.x?v2.x:v1.x, a.y?v2.y:v1.y, a.z?v2.z:v1.z                 );  }
vec2 mix(vec2 v1, vec2 v2, bvec2 a) { return vec2( a.x?v2.x:v1.x, a.y?v2.y:v1.y                                );  }
ivec4 mix(ivec4 v1, ivec4 v2, bvec4 a) { return ivec4( a.x?v2.x:v1.x, a.
[2020.01.10-12.53.51:876][  0]LogRHI: Warning: [API][Error][Notification][8784] GLES: (gles::_after_gl_shader_source_call 54) GL RETURNED SOURCE:
=====
#version 430

vec4 mix(vec4 v1, vec4 v2, bvec4 a) { return vec4( a.x?v2.x:v1.x, a.y?v2.y:v1.y, a.z?v2.z:v1.z, a.w?v2.w:v1.w  );  }
vec3 mix(vec3 v1, vec3 v2, bvec3 a) { return vec3( a.x?v2.x:v1.x, a.y?v2.y:v1.y, a.z?v2.z:v1.z                 );  }
vec2 mix(vec2 v1, vec2 v2, bvec2 a) { return vec2( a.x?v2.x:v1.x, a.y?v2.y:v1.y                                );  }
ivec4 mix(ivec4 v1, ivec4 v2, bvec4 a) { return ivec4( a.x?v2.x:v1.x,
[2020.01.10-12.53.51:876][  0]LogRHI: Warning: [API][Error][Notification][8739] GLES: (gles::_after_gl_shader_source_call 55) ERROR LOG MALI:
=====

====

[2020.01.10-12.53.51:876][  0]LogRHI: Warning: [API][Error][Notification][8738] GLES: (gles::_after_gl_shader_source_call 56) ERROR LOG GL:
=====

====

Exception thrown at 0x00007FFB2906A839 in UE4Editor-Win64-Debug.exe: Microsoft C++ exception: gles::glessl::NoCompilerFound at memory location 0x00000008E28948F0.

Outcomes