[Bug 108646] error: linking with uncompiled/unspecialized shader

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Nov 3 21:02:19 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=108646

            Bug ID: 108646
           Summary: error: linking with uncompiled/unspecialized shader
           Product: Mesa
           Version: 18.2
          Hardware: Other
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/i965
          Assignee: intel-3d-bugs at lists.freedesktop.org
          Reporter: zebob.m at gmail.com
        QA Contact: intel-3d-bugs at lists.freedesktop.org

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

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20181103/5ff79d3e/attachment-0001.html>


More information about the intel-3d-bugs mailing list