Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | linker: Remove the FINISHME comment for intrastage linking | Ian Romanick | 2010-07-19 | 1 | -1/+2 |
| | |||||
* | linker: Remove redundant check for 'main' in shaders | Ian Romanick | 2010-07-19 | 1 | -10/+0 |
| | | | | This is now handled in link_intrastage_shaders. | ||||
* | linker: Track and validate GLSL versions used in shaders | Ian Romanick | 2010-07-19 | 1 | -0/+21 |
| | |||||
* | linker: Add comment about bug in initializer handling | Ian Romanick | 2010-07-19 | 1 | -0/+8 |
| | |||||
* | linker: First bits of intrastage, intershader function linking | Ian Romanick | 2010-07-19 | 1 | -0/+2 |
| | | | | | | This handles the easy case of linking a function in a different compilation unit that doesn't call any functions or reference any global variables. | ||||
* | linker: Remove some unnecessary includes | Ian Romanick | 2010-07-19 | 1 | -2/+0 |
| | |||||
* | linker: Use foreach_list_safe in move_non_declarations | Ian Romanick | 2010-07-19 | 1 | -1/+1 |
| | | | | | | The node being processed may be removed from the list and put in a different list. Not using the safe version caused list processing to change streams after moving a node. | ||||
* | linker: Move global instructions from the linked shader first | Ian Romanick | 2010-07-19 | 1 | -4/+8 |
| | | | | | | For the shader containing 'main', use the linked shader (i.e., the clone of the original shader that contained main) as the source for global instructions to move into main. | ||||
* | glsl2: When linking makes a variable not a varying output, make it ir_var_auto. | Eric Anholt | 2010-07-13 | 1 | -1/+4 |
| | | | | | This almost fixes glsl-unused-varying, except that the used varying gets assigned to the first varying slot (position). | ||||
* | glsl2: Remove unnecessary casts of clone return values | Ian Romanick | 2010-07-13 | 1 | -2/+1 |
| | |||||
* | linker: Merge global-scope instructions into main | Ian Romanick | 2010-07-12 | 1 | -0/+121 |
| | | | | | | | | Find instructions in all shaders that are not contained in a function (i.e., initializers for global variables). "Move" these instructions to the top of the main function in the linked shader. As a side-effect, many global variables will also be copied into the linked shader. | ||||
* | linker: Detect the shader that contains "main" during intrastage linking | Ian Romanick | 2010-07-12 | 1 | -5/+45 |
| | |||||
* | linker: Implement first bits of intrastage linking | Ian Romanick | 2010-07-12 | 1 | -2/+58 |
| | | | | | | | This currently involves an ugly hack so that every link doesn't result in all the built-in functions showing up as multiply defined. As soon as the built-in functions are stored in a separate compilation unit, ir_function_signature::is_built_in can be removed. | ||||
* | linker: Refactor cross_validate_uniforms into cross_validate_globals | Ian Romanick | 2010-07-12 | 1 | -13/+54 |
| | | | | The later, more generic function will be used in the intra-stage linker. | ||||
* | linker: Stub-out intrastage linker | Ian Romanick | 2010-07-12 | 1 | -14/+67 |
| | |||||
* | linker: Use bit-0 instead of VERT_BIT_GENERIC0 | Ian Romanick | 2010-07-07 | 1 | -1/+1 |
| | | | | | | Uses of the bits for allocation are offset by 16, and VERT_BIT_GENERIC0 already has the 16 offset. As a result, it was preventing the wrong thing from being allocated. | ||||
* | glsl2: Allow a fragment shader to not write a color. | Eric Anholt | 2010-06-30 | 1 | -6/+0 |
| | | | | | | I can't find any text justifying this check, and it caused a reasonable-looking shader in glsl-bug-22603 (which writes only gl_FragDepth) to fail. | ||||
* | linker: Don't dynamically allocate slots for linked shaders | Ian Romanick | 2010-06-30 | 1 | -2/+0 |
| | | | | | The can be at most one shader per stage. There are currently only two stages. There is zero reason to dynamically size this array. | ||||
* | linker: Don't automatically allocate VERT_ATTRIB_GENERIC0 | Ian Romanick | 2010-06-30 | 1 | -0/+6 |
| | |||||
* | glsl2: Use Mesa's gl_shader_program instead of our own struct glsl_program. | Eric Anholt | 2010-06-30 | 1 | -8/+8 |
| | | | | This avoids more allocation and shuffling of data around. | ||||
* | glsl2: Move our data from a glsl_shader* on the side to the main gl_shader *. | Eric Anholt | 2010-06-30 | 1 | -24/+24 |
| | | | | | This saves recompiling at link time. gl_shader->ir is made a pointer so that we don't have to bring exec_list into mtypes.h. | ||||
* | glsl2: Wrap includes of C interfaces with extern "C". | Eric Anholt | 2010-06-24 | 1 | -0/+2 |
| | |||||
* | glsl2: Move the compiler to the subdirectory it will live in in Mesa. | Eric Anholt | 2010-06-24 | 1 | -0/+871 |