[Mesa-dev] [Bug 29573] New: [glsl2] struct within a struct causes an assertion failure

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Aug 13 20:08:06 PDT 2010


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

           Summary: [glsl2] struct within a struct causes an assertion
                    failure
           Product: Mesa
           Version: git
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Mesa core
        AssignedTo: mesa-dev at lists.freedesktop.org
        ReportedBy: idr at freedesktop.org


In CorrectFull.frag, the following structure causes an assertion failure:

struct light1 
{
    float intensity;
   vec3 position;
   int test_int[2];
   struct 
   {
      int a;
      float f; 
   } light2;
} lightVar;

This variable is never dereferenced in the program.  The assertion failure is:

ir_validate.cpp:382: void check_node_type(ir_instruction*, void*): Assertion
`ir->type != glsl_type::error_type' failed.

This was first triggered after the commit listed below, but I believe that is
spurious.  The actual assertion is that the declaration of a variable
lightVar_light2 has an error type.  My guess is that rearranging optimization
passes have caused ir_validate to be called before this unused declaration
could be removed.

commit 2f4fe151681a6f6afe1d452eece6cf4144f44e49
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 10 13:06:49 2010 -0700

    glsl2: Move the common optimization passes to a helper function.

    These are passes that we expect all codegen to be happy with.  The
    other lowering passes for Mesa IR are moved to the Mesa IR generator.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the mesa-dev mailing list