<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - error: linking with uncompiled/unspecialized shader"
href="https://bugs.freedesktop.org/show_bug.cgi?id=108646">108646</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>error: linking with uncompiled/unspecialized shader
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>18.2
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/DRI/i965
</td>
</tr>
<tr>
<th>Assignee</th>
<td>intel-3d-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>zebob.m@gmail.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>intel-3d-bugs@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>Observed with mesa-18.2.3 and mesa-18.2.4. This is a regression as mesa-18.2.2
works fine.
mpv with OpenGl output (-vo=gpu) started showing errors and displaying a blue
screen:
Using hardware decoding (vaapi).
VO: [gpu] 1280x720 vaapi[nv12]
[vo/gpu/opengl] fragment shader source:
[vo/gpu/opengl] [ 1] #version 440
[vo/gpu/opengl] [ 2] #define tex1D texture
[vo/gpu/opengl] [ 3] #define tex3D texture
[vo/gpu/opengl] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 -
0.5 / (lut_size), (x))
[vo/gpu/opengl] [ 5] out vec4 out_color;
[vo/gpu/opengl] [ 6] in vec2 texcoord0;
[vo/gpu/opengl] [ 7] layout(std140, binding=0) uniform UBO {
[vo/gpu/opengl] [ 8] layout(offset=0) vec2 texture_size0;
[vo/gpu/opengl] [ 9] layout(offset=16) mat2 texture_rot0;
[vo/gpu/opengl] [ 10] layout(offset=48) vec2 texture_off0;
[vo/gpu/opengl] [ 11] layout(offset=56) vec2 pixel_size0;
[vo/gpu/opengl] [ 12] };
[vo/gpu/opengl] [ 13] uniform float random;
[vo/gpu/opengl] [ 14] uniform sampler2D texture0;
[vo/gpu/opengl] [ 15] #define HOOKED_raw texture0
[vo/gpu/opengl] [ 16] #define HOOKED_pos texcoord0
[vo/gpu/opengl] [ 17] #define HOOKED_size texture_size0
[vo/gpu/opengl] [ 18] #define HOOKED_rot texture_rot0
[vo/gpu/opengl] [ 19] #define HOOKED_pt pixel_size0
[vo/gpu/opengl] [ 20] #define HOOKED_map texmap0
[vo/gpu/opengl] [ 21] #define HOOKED_mul 1.000000
[vo/gpu/opengl] [ 22] #define HOOKED_tex(pos) (HOOKED_mul *
vec4(texture(HOOKED_raw, pos)).rgba)
[vo/gpu/opengl] [ 23] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos +
HOOKED_pt * vec2(off))
[vo/gpu/opengl] [ 24] #define LUMA_raw texture0
[vo/gpu/opengl] [ 25] #define LUMA_pos texcoord0
[vo/gpu/opengl] [ 26] #define LUMA_size texture_size0
[vo/gpu/opengl] [ 27] #define LUMA_rot texture_rot0
[vo/gpu/opengl] [ 28] #define LUMA_pt pixel_size0
[vo/gpu/opengl] [ 29] #define LUMA_map texmap0
[vo/gpu/opengl] [ 30] #define LUMA_mul 1.000000
[vo/gpu/opengl] [ 31] #define LUMA_tex(pos) (LUMA_mul * vec4(texture(LUMA_raw,
pos)).rgba)
[vo/gpu/opengl] [ 32] #define LUMA_texOff(off) LUMA_tex(LUMA_pos + LUMA_pt *
vec2(off))
[vo/gpu/opengl] [ 33] float mod289(float x) { return x - floor(x * 1.0/289.0) *
289.0; }
[vo/gpu/opengl] [ 34] float permute(float x) { return mod289((34.0*x + 1.0) *
x); }
[vo/gpu/opengl] [ 35] float rand(float x) { return fract(x * 1.0/41.0); }
[vo/gpu/opengl] [ 36] vec4 average(float range, inout float h) {
[vo/gpu/opengl] [ 37] float dist = rand(h) * range; h = permute(h);
[vo/gpu/opengl] [ 38] float dir = rand(h) * 6.2831853; h = permute(h);
[vo/gpu/opengl] [ 39] vec2 o = dist * vec2(cos(dir), sin(dir));
[vo/gpu/opengl] [ 40] vec4 ref[4];
[vo/gpu/opengl] [ 41] ref[0] = HOOKED_texOff(vec2( o.x, o.y));
[vo/gpu/opengl] [ 42] ref[1] = HOOKED_texOff(vec2(-o.y, o.x));
[vo/gpu/opengl] [ 43] ref[2] = HOOKED_texOff(vec2(-o.x, -o.y));
[vo/gpu/opengl] [ 44] ref[3] = HOOKED_texOff(vec2( o.y, -o.x));
[vo/gpu/opengl] [ 45] return (ref[0] + ref[1] + ref[2] + ref[3])*0.25;
[vo/gpu/opengl] [ 46] }
[vo/gpu/opengl] [ 47] void main() {
[vo/gpu/opengl] [ 48] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[vo/gpu/opengl] [ 49] {
[vo/gpu/opengl] [ 50] vec3 _m = vec3(HOOKED_pos, random) + vec3(1.0);
[vo/gpu/opengl] [ 51] float h = permute(permute(permute(_m.x)+_m.y)+_m.z);
[vo/gpu/opengl] [ 52] color = HOOKED_tex(HOOKED_pos);
[vo/gpu/opengl] [ 53] vec4 avg, diff;
[vo/gpu/opengl] [ 54] avg = average(16.000000, h);
[vo/gpu/opengl] [ 55] diff = abs(color - avg);
[vo/gpu/opengl] [ 56] color = mix(avg, color, greaterThan(diff,
vec4(0.003906)));
[vo/gpu/opengl] [ 57] vec3 noise;
[vo/gpu/opengl] [ 58] noise.x = rand(h); h = permute(h);
[vo/gpu/opengl] [ 59] noise.y = rand(h); h = permute(h);
[vo/gpu/opengl] [ 60] noise.z = rand(h); h = permute(h);
[vo/gpu/opengl] [ 61] color.xyz += 0.005859 * (noise - vec3(0.5));
[vo/gpu/opengl] [ 62] }
[vo/gpu/opengl] [ 63] color.g = 0.000000;
[vo/gpu/opengl] [ 64] color.b = 0.000000;
[vo/gpu/opengl] [ 65] color.a = 1.000000;
[vo/gpu/opengl] [ 66] out_color = color;
[vo/gpu/opengl] [ 67] }
[vo/gpu/opengl] fragment shader compile log (status=0):
[vo/gpu/opengl] 0:36(27): error: invalid input layout qualifier used
[vo/gpu/opengl]
[vo/gpu/opengl] shader link log (status=0): error: linking with
uncompiled/unspecialized shader
[vo/gpu/opengl] fragment shader source:
[vo/gpu/opengl] [ 1] #version 440
[vo/gpu/opengl] [ 2] #define tex1D texture
[vo/gpu/opengl] [ 3] #define tex3D texture
[vo/gpu/opengl] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 -
0.5 / (lut_size), (x))
[vo/gpu/opengl] [ 5] out vec4 out_color;
[vo/gpu/opengl] [ 6] in vec2 texcoord0;
[vo/gpu/opengl] [ 7] layout(std140, binding=0) uniform UBO {
[vo/gpu/opengl] [ 8] layout(offset=0) vec2 texture_size0;
[vo/gpu/opengl] [ 9] layout(offset=16) mat2 texture_rot0;
[vo/gpu/opengl] [ 10] layout(offset=48) vec2 texture_off0;
[vo/gpu/opengl] [ 11] layout(offset=56) vec2 pixel_size0;
[vo/gpu/opengl] [ 12] };
[vo/gpu/opengl] [ 13] uniform float random;
[vo/gpu/opengl] [ 14] uniform sampler2D texture0;
[vo/gpu/opengl] [ 15] #define HOOKED_raw texture0
[vo/gpu/opengl] [ 16] #define HOOKED_pos texcoord0
[vo/gpu/opengl] [ 17] #define HOOKED_size texture_size0
[vo/gpu/opengl] [ 18] #define HOOKED_rot texture_rot0
[vo/gpu/opengl] [ 19] #define HOOKED_pt pixel_size0
[vo/gpu/opengl] [ 20] #define HOOKED_map texmap0
[vo/gpu/opengl] [ 21] #define HOOKED_mul 1.000000
[vo/gpu/opengl] [ 22] #define HOOKED_tex(pos) (HOOKED_mul *
vec4(texture(HOOKED_raw, pos)).rgba)
[vo/gpu/opengl] [ 23] #define HOOKED_texOff(off) HOOKED_tex(HOOKED_pos +
HOOKED_pt * vec2(off))
[vo/gpu/opengl] [ 24] #define CHROMA_raw texture0
[vo/gpu/opengl] [ 25] #define CHROMA_pos texcoord0
[vo/gpu/opengl] [ 26] #define CHROMA_size texture_size0
[vo/gpu/opengl] [ 27] #define CHROMA_rot texture_rot0
[vo/gpu/opengl] [ 28] #define CHROMA_pt pixel_size0
[vo/gpu/opengl] [ 29] #define CHROMA_map texmap0
[vo/gpu/opengl] [ 30] #define CHROMA_mul 1.000000
[vo/gpu/opengl] [ 31] #define CHROMA_tex(pos) (CHROMA_mul *
vec4(texture(CHROMA_raw, pos)).rgba)
[vo/gpu/opengl] [ 32] #define CHROMA_texOff(off) CHROMA_tex(CHROMA_pos +
CHROMA_pt * vec2(off))
[vo/gpu/opengl] [ 33] float mod289(float x) { return x - floor(x * 1.0/289.0) *
289.0; }
[vo/gpu/opengl] [ 34] float permute(float x) { return mod289((34.0*x + 1.0) *
x); }
[vo/gpu/opengl] [ 35] float rand(float x) { return fract(x * 1.0/41.0); }
[vo/gpu/opengl] [ 36] vec4 average(float range, inout float h) {
[vo/gpu/opengl] [ 37] float dist = rand(h) * range; h = permute(h);
[vo/gpu/opengl] [ 38] float dir = rand(h) * 6.2831853; h = permute(h);
[vo/gpu/opengl] [ 39] vec2 o = dist * vec2(cos(dir), sin(dir));
[vo/gpu/opengl] [ 40] vec4 ref[4];
[vo/gpu/opengl] [ 41] ref[0] = HOOKED_texOff(vec2( o.x, o.y));
[vo/gpu/opengl] [ 42] ref[1] = HOOKED_texOff(vec2(-o.y, o.x));
[vo/gpu/opengl] [ 43] ref[2] = HOOKED_texOff(vec2(-o.x, -o.y));
[vo/gpu/opengl] [ 44] ref[3] = HOOKED_texOff(vec2( o.y, -o.x));
[vo/gpu/opengl] [ 45] return (ref[0] + ref[1] + ref[2] + ref[3])*0.25;
[vo/gpu/opengl] [ 46] }
[vo/gpu/opengl] [ 47] void main() {
[vo/gpu/opengl] [ 48] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[vo/gpu/opengl] [ 49] {
[vo/gpu/opengl] [ 50] vec3 _m = vec3(HOOKED_pos, random) + vec3(1.0);
[vo/gpu/opengl] [ 51] float h = permute(permute(permute(_m.x)+_m.y)+_m.z);
[vo/gpu/opengl] [ 52] color = HOOKED_tex(HOOKED_pos);
[vo/gpu/opengl] [ 53] vec4 avg, diff;
[vo/gpu/opengl] [ 54] avg = average(16.000000, h);
[vo/gpu/opengl] [ 55] diff = abs(color - avg);
[vo/gpu/opengl] [ 56] color = mix(avg, color, greaterThan(diff,
vec4(0.003906)));
[vo/gpu/opengl] [ 57] vec3 noise;
[vo/gpu/opengl] [ 58] noise.x = rand(h); h = permute(h);
[vo/gpu/opengl] [ 59] noise.y = rand(h); h = permute(h);
[vo/gpu/opengl] [ 60] noise.z = rand(h); h = permute(h);
[vo/gpu/opengl] [ 61] color.xyz += 0.005859 * (noise - vec3(0.5));
[vo/gpu/opengl] [ 62] }
[vo/gpu/opengl] [ 63] color.b = 0.000000;
[vo/gpu/opengl] [ 64] color.a = 1.000000;
[vo/gpu/opengl] [ 65] out_color = color;
[vo/gpu/opengl] [ 66] }
[vo/gpu/opengl] fragment shader compile log (status=0):
[vo/gpu/opengl] 0:36(27): error: invalid input layout qualifier used
[vo/gpu/opengl]
[vo/gpu/opengl] shader link log (status=0): error: linking with
uncompiled/unspecialized shader</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>