Bug 29822

Summary: [glsl bisected] Unigine Sanctuary v2.2: no shadows (allocation of uniforms failed)
Product: Mesa Reporter: Pavel Ondračka <pavel.ondracka>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: eric, sa
Version: gitKeywords: regression
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: full terminal output

Description Pavel Ondračka 2010-08-26 11:49:41 UTC
Created attachment 38193 [details]
full terminal output

With latest mesa git there are no shadows in Unigine Sanctuary, they were really messed up before, now they are missing completely. git bisect showed this:

commit 0924ba0c3496160a134d37cec800f902ae805b9c
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Aug 24 14:27:27 2010 -0700

    ir_to_mesa: Convert this code to using linker.cpp's uniform locations.
    
    Fixes: glsl-fs-uniform-array-4.

This is being printed into terminal, full log attached:
GLShader::compile(): Allocation of uniform `s_light_shadow_iradius' to target failed (0 vs 9)
Allocation of uniform `color_scale' to target failed (1 vs 0)
Allocation of uniform `s_texture_13' to target failed (2 vs 1)
Allocation of uniform `s_texture_11' to target failed (3 vs 2)
Allocation of uniform `s_texture_3' to target failed (4 vs 3)
Allocation of uniform `s_texture_2' to target failed (5 vs 4)
Allocation of uniform `s_texture_1' to target failed (6 vs 5)
Allocation of uniform `s_material_phong_rim' to target failed (7 vs 6)
Allocation of uniform `s_material_shading' to target failed (8 vs 7)
Allocation of uniform `s_material_fresnel' to target failed (9 vs 8)
Material::create_shader(): can't compile "core/shaders/meshes/vertex_base.shader" vertex shader
defines: UNKNOWN,QUALITY_LOW,QUALITY_MEDIUM,MULTISAMPLE_0,USE_INSTANCING,OPENGL,USE_PSEUDO_INSTANCING,USE_PSEUDO_TRANSFORM,PROJ,SHADOW,BASE_LIGHT_PROJ
Material::create_shader(): can't compile "core/shaders/meshes/fragment_base_light_proj.shader" fragment shader
defines: UNKNOWN,QUALITY_LOW,QUALITY_MEDIUM,MULTISAMPLE_0,USE_INSTANCING,OPENGL,USE_PSEUDO_INSTANCING,USE_PSEUDO_TRANSFORM,PROJ,SHADOW,PHONG_RIM

This is with r300g driver, RV530, 2.6.35 kernel. Sorry about using this old version of Unigine, the last one need GL_ARB_half_float_pixel which is not supported in r300g.
Comment 1 Eric Anholt 2010-08-31 10:43:52 UTC
commit 4c47509a41f0fd6e1ab673c94cca25206089f5ca
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Aug 31 10:33:17 2010 -0700

    glsl-uniform-linking-1: New test for a failure in uniform handling for Unigine.
Comment 2 Eric Anholt 2010-08-31 11:36:18 UTC
commit 99f3c9caa39fbe9dfa7561c919202395720e9472
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Aug 31 11:16:09 2010 -0700

    ir_to_mesa: Sort the uniform list we're adding to Parameters[] order.
    
    Fixes glsl-uniform-linking-1 and failure to link a shader in Unigine.
    An alternative here would be to just ditch using _mesa_add_parameter
    and build the initial params list on our own, but that would require
    two walks of the list as well.
    
    Bug #29822

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.