mpv blue screen after 4c6d99ed ("Invalid SPIR-V binary version 1.6 for target environment SPIR-V 1.0")
Forwarding the https://github.com/NixOS/nixpkgs/pull/409775#issuecomment-2918622810 issue upstream hoping you can help me debug or route the bug.
Can you help me understand where the failure comes from? Thank you!
After 4c6d99ed update (bisected, verified with a revert) mpv-0.40.0
can't initialize video any more. Attached full log.txt. Here is the first page:
$ mpv ./grOnn.skog.jpg
● Image --vid=1 (mjpeg 600x450)
VO: [gpu] 600x450 yuv420p
[vo/gpu/libplacebo] shaderc output:
[vo/gpu/libplacebo] shaderc: internal error: compilation succeeded but failed to optimize: Invalid SPIR-V binary version 1.6 for target environment SPIR-V 1.0[log.txt](/uploads/583876a183f0349a2bf34b8e96b029ff/log.txt) (under Vulkan 1.0 semantics).
[vo/gpu/libplacebo]
[vo/gpu/libplacebo]
[vo/gpu/libplacebo] shaderc compile status 'error' (0 errors, 0 warnings)
[vo/gpu/libplacebo] vk_compile_glsl(gpu, tmp, GLSL_SHADER_VERTEX, params->vertex_shader, &vert): VK_ERROR_INITIALIZATION_FAILED (../src/vulkan/gpu_pass.c:460)
[vo/gpu/libplacebo] vertex shader source:
[vo/gpu/libplacebo] [ 1] #version 450
[vo/gpu/libplacebo] [ 2] #define tex1D texture
[vo/gpu/libplacebo] [ 3] #define tex3D texture
[vo/gpu/libplacebo] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[vo/gpu/libplacebo] [ 5] layout(location=0) in vec2 vertex_position;
[vo/gpu/libplacebo] [ 6] layout(location=1) in vec2 vertex_texcoord0;
[vo/gpu/libplacebo] [ 7] layout(location=1) out vec2 texcoord0;
[vo/gpu/libplacebo] [ 8] layout(location=2) in vec2 vertex_texcoord1;
[vo/gpu/libplacebo] [ 9] layout(location=2) out vec2 texcoord1;
[vo/gpu/libplacebo] [ 10] void main() {
[vo/gpu/libplacebo] [ 11] gl_Position = vec4(vertex_position, 1.0, 1.0);
[vo/gpu/libplacebo] [ 12] texcoord0 = vertex_texcoord0;
[vo/gpu/libplacebo] [ 13] texcoord1 = vertex_texcoord1;
[vo/gpu/libplacebo] [ 14] }
[vo/gpu/libplacebo] fragment shader source:
[vo/gpu/libplacebo] [ 1] #version 450
[vo/gpu/libplacebo] [ 2] #define tex1D texture
[vo/gpu/libplacebo] [ 3] #define tex3D texture
[vo/gpu/libplacebo] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[vo/gpu/libplacebo] [ 5] layout(location=0) out vec4 out_color;
[vo/gpu/libplacebo] [ 6] layout(location=1) in vec2 texcoord0;
[vo/gpu/libplacebo] [ 7] layout(location=2) in vec2 texcoord1;
[vo/gpu/libplacebo] [ 8] layout(std140, binding=2) uniform UBO {
[vo/gpu/libplacebo] [ 9] layout(offset=0) mat2 texture_rot0;
[vo/gpu/libplacebo] [ 10] layout(offset=32) mat2 texture_rot1;
[vo/gpu/libplacebo] [ 11] };
[vo/gpu/libplacebo] [ 12] layout(std430, push_constant) uniform PushC {
[vo/gpu/libplacebo] [ 13] layout(offset=0) vec2 texture_size0;
[vo/gpu/libplacebo] [ 14] layout(offset=8) vec2 texture_off0;
[vo/gpu/libplacebo] [ 15] layout(offset=16) vec2 pixel_size0;
[vo/gpu/libplacebo] [ 16] layout(offset=24) vec2 texture_size1;
[vo/gpu/libplacebo] [ 17] layout(offset=32) vec2 texture_off1;
[vo/gpu/libplacebo] [ 18] layout(offset=40) vec2 pixel_size1;
[vo/gpu/libplacebo] [ 19] };
[vo/gpu/libplacebo] [ 20] layout(binding=0) uniform sampler2D texture0;
[vo/gpu/libplacebo] [ 21] layout(binding=1) uniform sampler2D texture1;
[vo/gpu/libplacebo] [ 22] void main() {
[vo/gpu/libplacebo] [ 23] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[vo/gpu/libplacebo] [ 24] // merging plane 1 ...
[vo/gpu/libplacebo] [ 25] color.r = 1.000000 * vec4(texture(texture0, texcoord0)).r;
[vo/gpu/libplacebo] [ 26] // merging plane 2 ... into 1
[vo/gpu/libplacebo] [ 27] color.g = 1.000000 * vec4(texture(texture1, texcoord1)).r;
[vo/gpu/libplacebo] [ 28] out_color = color;
[vo/gpu/libplacebo] [ 29] }
[vo/gpu/libplacebo] Backtrace:
[vo/gpu/libplacebo] #0 0x00007fd385df4c1d in pl_pass_create+0x20d at /nix/store/jw7bdrrz7nm9ihggjxn71az1ls1h8bry-libplacebo-7.351.0/lib/libplacebo.so.351+0x76c1d
[vo/gpu/libplacebo] #1 0x0000000000512b5e in renderpass_create_pl+0x49e at /run/current-system/sw/bin/mpv+0x113b5e
[vo/gpu/libplacebo] #2 0x00000000004f22f6 in gl_sc_generate+0xe66 at /run/current-system/sw/bin/mpv+0xf32f6
[vo/gpu/libplacebo] #3 0x00000000004f3a15 in gl_sc_dispatch_draw+0x55 at /run/current-system/sw/bin/mpv+0xf4a15
[vo/gpu/libplacebo] #4 0x00000000004fa748 in finish_pass_fbo+0x3f8 at /run/current-system/sw/bin/mpv+0xfb748
[vo/gpu/libplacebo] #5 0x00000000004fada0 in finish_pass_tex+0x150 at /run/current-system/sw/bin/mpv+0xfbda0
[vo/gpu/libplacebo] #6 0x00000000004fe9bf in pass_render_frame+0x34f at /run/current-system/sw/bin/mpv+0xff9bf
[vo/gpu/libplacebo] #7 0x0000000000500fcf in gl_video_render_frame+0x84f at /run/current-system/sw/bin/mpv+0x101fcf
[vo/gpu/libplacebo] #8 0x00000000005091c4 in draw_frame+0x94 at /run/current-system/sw/bin/mpv+0x10a1c4
[vo/gpu/libplacebo] #9 0x000000000050821d in vo_thread+0x79d at /run/current-system/sw/bin/mpv+0x10921d
[vo/gpu/libplacebo] #10 0x00007fd381e97e63 in start_thread+0x383 at /nix/store/cg9s562sa33k78m63njfn1rw47dp9z0i-glibc-2.40-66/lib/libc.so.6+0x97e63
[vo/gpu/libplacebo] #11 0x00007fd381f1bdbc in __clone3+0x2c at /nix/store/cg9s562sa33k78m63njfn1rw47dp9z0i-glibc-2.40-66/lib/libc.so.6+0x11bdbc
[vo/gpu/libplacebo] shaderc output:
[vo/gpu/libplacebo] shaderc: internal error: compilation succeeded but failed to optimize: Invalid SPIR-V binary version 1.6 for target environment SPIR-V 1.0 (under Vulkan 1.0 semantics).
[vo/gpu/libplacebo]
Edited by Sergei Trofimovich