Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
This almost fixes glsl-unused-varying, except that the used varying
gets assigned to the first varying slot (position).
|
|
|
|
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.
|
|
|
|
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.
|
|
The later, more generic function will be used in the intra-stage linker.
|
|
|
|
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.
|
|
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.
|
|
The can be at most one shader per stage. There are currently only two
stages. There is zero reason to dynamically size this array.
|
|
|
|
This avoids more allocation and shuffling of data around.
|
|
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.
|
|
|
|
|