Canary crash after updated to #1192


#1

Issue:
After updating Citra Canary to version 1192, Citra keeps on crashing, with a GLSL related error appeared in the console log. The only workaround that worked for me it’s to grab the 1191 version from github and overwrite version 1192 with it.
To clarify, I was using MESA instead of the device’s driver to run Citra. Any further details are probably inside the log file.

System Information

  • Operating System: Windows 10
  • CPU: Intel® Core™ i3-2348M
  • GPU: Intel® HD Graphics 3000 (OpenGL 3.3 compatibly using MESA)
  • Citra Version (found in title bar): Citra Canary 1192
  • Game: Any game on the list (they all used to work in version 1191)

Diagnostic Log
citra_log.txt (34.2 KB)


#2

I did not find anything wrong in your log file. Please wait for a moderator to assist.


#3

Weird, I swear I haven’t ever seen these lines before:

[ 4.178925] Render.OpenGL video_core/renderer_opengl/renderer_opengl.cpp:DebugHandler:534: SHADER_COMPILER ERROR 1: 0:2(10): error: GLSL ES 3.10 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 1.00 ES, and 3.00 ES
[ 4.178948] Render.OpenGL video_core/renderer_opengl/gl_shader_util.cpp:LoadShader:63: Error compiling vertex shader:
0:2(10): error: GLSL ES 3.10 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 1.00 ES, and 3.00 ES

[ 4.178997] Render.OpenGL video_core/renderer_opengl/gl_shader_util.cpp:LoadShader:64: Shader source code:

#version 310 es
#if defined(GL_ANDROID_extension_pack_es31a)
#extension GL_ANDROID_extension_pack_es31a : enable
#endif // defined(GL_ANDROID_extension_pack_es31a)

#ifdef GL_ES
#if defined(GL_EXT_clip_cull_distance)
#extension GL_EXT_clip_cull_distance : enable
#endif // defined(GL_EXT_clip_cull_distance)
#endif // GL_ES

in vec2 vert_position;
in vec2 vert_tex_coord;
out vec2 frag_tex_coord;

// This is a truncated 3x3 matrix for 2D transformations:
// The upper-left 2x2 submatrix performs scaling/rotation/mirroring.
// The third column performs translation.
// The third row could be used for projection, which we don’t need in 2D. It hence is assumed to
// implicitly be [0, 0, 1]
uniform mat3x2 modelview_matrix;

void main() {
// Multiply input position by the rotscale part of the matrix and then manually translate by
// the last column. This is equivalent to using a full 3x3 matrix and expanding the vector
// to vec3(vert_position.xy, 1.0)
gl_Position = vec4(mat2(modelview_matrix) * vert_position + modelview_matrix[2], 0.0, 1.0);
frag_tex_coord = vert_tex_coord;
}

[ 4.179127] Render.OpenGL video_core/renderer_opengl/renderer_opengl.cpp:DebugHandler:534: SHADER_COMPILER ERROR 2: 0:2(10): error: GLSL ES 3.10 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 1.00 ES, and 3.00 ES
[ 4.179140] Render.OpenGL video_core/renderer_opengl/gl_shader_util.cpp:LoadShader:63: Error compiling fragment shader:
0:2(10): error: GLSL ES 3.10 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 1.00 ES, and 3.00 ES

[ 4.179145] Render.OpenGL video_core/renderer_opengl/gl_shader_util.cpp:LoadShader:64: Shader source code:

#version 310 es
#if defined(GL_ANDROID_extension_pack_es31a)
#extension GL_ANDROID_extension_pack_es31a : enable
#endif // defined(GL_ANDROID_extension_pack_es31a)

#ifdef GL_ES
#if defined(GL_EXT_clip_cull_distance)
#extension GL_EXT_clip_cull_distance : enable
#endif // defined(GL_EXT_clip_cull_distance)
#endif // GL_ES

#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
precision highp samplerBuffer;
#else
precision mediump float;
precision mediump samplerBuffer;
#endif // GL_FRAGMENT_PRECISION_HIGH

in vec2 frag_tex_coord;
out vec4 color;

uniform sampler2D color_texture;

void main() {
color = texture(color_texture, frag_tex_coord);
}

[ 4.179197] Render.OpenGL video_core/renderer_opengl/gl_shader_util.cpp:LoadProgram:100: Error linking shader:
error: linking with uncompiled/unspecialized shadererror: linking with uncompiled/unspecialized shader
[ 4.179201] Debug video_core/renderer_opengl/gl_shader_util.cpp:operator():104: Assertion Failed!
Shader not linked

After that, Citra Canary abruptly crashed. So fast that I couldn’t even take screenshots. Also, Nighty works fine despite also got update.


#4

It seems there is a problem with 1192. Developers have been notified. Thank you for your patience.


#5

1193 is now available. Please update your Canary release.


#6

Thanks, I’ll update rightaway. :+1:

Works perfectly now, you guys are amazing :grin: Kinda curious what caused the crashing though, as my old log file mentioned GLSL ES 3.10 being unsupported.


#7

the crash was because we are working on android support still, and this was a code change to the gpu emulation to support android phones. there was a small bug that caused your desktop computer to use some of the code path that android uses though, which made it crash.


#8

Wow, so you guys are working on the Android version too? Is that something similar to this one: https://github.com/SachinVin/citra_android, or something entirely different?
I run the version from that github link on my 4-year-old Galaxy J7, and some game worked (abeit very slow).