summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* ir_to_mesa: Fix the indexing of attributes in the program's Attributes.Eric Anholt2010-06-301-1/+1
| | | | | This fixes GetAttribLocation returning VERT_ATTRIB_GENERIC1 instead of 1, caught by glsl-dlist-getattriblocation.
* glsl2: Fix storing of dead memory in the symbol table.Kenneth Graunke2010-06-301-2/+2
| | | | | decl->identifier is part of the AST, so it doesn't live very long. Instead, add var->name which is owned by var.
* glsl2: Preprocessed source doesn't need to live past compile time.Kenneth Graunke2010-06-302-8/+2
|
* glsl2: Create new talloc contexts the "right" way.Kenneth Graunke2010-06-302-2/+2
|
* glsl2: Use _mesa_glsl_parse_state as the talloc parent, not glsl_shader.Kenneth Graunke2010-06-306-120/+120
| | | | | | | | | | | | | _mesa_glsl_parse_state should be the parent for all temporary allocation done while compiling a shader. glsl_shader should only be used as the parent for the shader's final IR---the _result_ of compilation. Since many IR instructions may be added or discarded during optimization passes, IR should not ever be allocated to glsl_shader directly. Done via sed -i s/talloc_parent(state)/state/g and s/talloc_parent(st)/st/g. This also removes a ton of talloc_parent calls, which may help performance.
* glsl2: Steal the live IR and free the rest of the junk.Kenneth Graunke2010-06-302-0/+22
|
* linker: Don't dynamically allocate slots for linked shadersIan Romanick2010-06-302-3/+6
| | | | | The can be at most one shader per stage. There are currently only two stages. There is zero reason to dynamically size this array.
* ir_to_mesa: Tell Mesa about our choices for vertex attribute locations.Eric Anholt2010-06-301-0/+9
|
* linker: Don't automatically allocate VERT_ATTRIB_GENERIC0Ian Romanick2010-06-301-0/+6
|
* glsl2: Use Mesa's gl_shader_program instead of our own struct glsl_program.Eric Anholt2010-06-306-66/+36
| | | | This avoids more allocation and shuffling of data around.
* glsl2: Make function names and variable names be children of the node.Eric Anholt2010-06-301-3/+2
| | | | This avoids losing their memory when the parser state is freed.
* glsl2: Move our data from a glsl_shader* on the side to the main gl_shader *.Eric Anholt2010-06-307-125/+95
| | | | | 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.
* ir_to_mesa: Add support for ir_unop_abs.Eric Anholt2010-06-291-0/+4
|
* ir_to_mesa: Add support for dFdx, dFdy.Eric Anholt2010-06-291-0/+8
|
* ir_to_mesa: Start adding support for texture instructions.Eric Anholt2010-06-292-2/+142
| | | | | | | Fixes: glsl-fs-bug25902 glsl-fs-sampler-numbering glsl-lod-bias
* glsl2: Keep the same number of components in implicit conversions.Kenneth Graunke2010-06-291-0/+6
| | | | Fixes piglit test glsl-implicit-conversion-01.
* glsl2: Make gl_MaxDrawBuffers available in the vertex shaderIan Romanick2010-06-291-32/+42
|
* glsl2: Make gl_MaxDrawBuffers available in the fragment shaderIan Romanick2010-06-291-0/+15
|
* glsl2: Make gl_FragData be available in GLSL 1.10 tooIan Romanick2010-06-291-12/+5
|
* glsl2: Pass MaxDrawBuffers from core Mesa into the GLSL compilerIan Romanick2010-06-294-24/+35
|
* glsl_type: Add _mesa_glsl_release_types to release all type related storageIan Romanick2010-06-293-2/+33
|
* glsl_type: All glsl_type objects live in their own talloc contextIan Romanick2010-06-292-4/+17
|
* glsl_type: Record type constructors are privateIan Romanick2010-06-292-12/+16
|
* glsl_type: Add get_record_instance methodIan Romanick2010-06-293-2/+86
|
* glsl_type: Vector, matrix, and sampler type constructors are privateIan Romanick2010-06-292-34/+42
|
* glsl_type: Make all static objects be class privateIan Romanick2010-06-293-39/+72
|
* glsl2: Use talloc_strdup when generating constructor temporary namesIan Romanick2010-06-291-8/+13
|
* glsl_type: Remove vector and matrix constructor generatorsIan Romanick2010-06-293-370/+0
| | | | | | All scalar, vector, and matrix constructors are generated in-line during AST-to-HIR translation. There is no longer any need to generate function versions of the constructors.
* glsl2: Don't flatten constructor parameters to scalarsIan Romanick2010-06-291-129/+59
| | | | | | | | Now that all scalar, vector, and matrix constructors are emitted in-line, the parameters to these constructors should not be flattened to a pile of scalars. Instead, the functions that emit the in-line constructor bodies can directly write the parameters to the correct locations in the objects being constructed.
* glsl2: Always emit matrix constructors inlineIan Romanick2010-06-291-1/+321
|
* glsl2: Always emit vector constructors inlineIan Romanick2010-06-291-1/+100
|
* ir_swizzle: Add new constructor, refactor constructorsIan Romanick2010-06-292-18/+56
| | | | | Adds a new constructor that takes an array of component values. Refactors the meat of the two constructors to an init_mask method.
* glsl2: Update TODO.Kenneth Graunke2010-06-291-4/+1
|
* glsl2: Check for non-void functions that don't have a return statement.Kenneth Graunke2010-06-292-0/+13
| | | | | | | This doesn't do any control flow analysis to ensure that the return statements are actually reached. Fixes piglit tests function5.frag and function-07.vert.
* glsl2: Reject return types with qualifiers.Kenneth Graunke2010-06-291-1/+10
| | | | Fixes piglit test return-qualifier.frag.
* glsl2: Add a method for querying if an AST type has any qualifiers.Kenneth Graunke2010-06-292-0/+11
|
* glsl2: Check that returned expressions match the function return type.Kenneth Graunke2010-06-291-3/+11
| | | | | From my reading of the specification, implicit conversions are not allowed. ATI seems to agree, though nVidia allows it without warning.
* glsl2: Invoke preprocessor before calling the compiler properIan Romanick2010-06-291-3/+11
|
* ir_to_mesa: Actually initialize the undef register for scalar_op1.Eric Anholt2010-06-281-1/+1
| | | | | Fixes glsl-sin, glsl-cos on 965, where we rely on unused src arguments in the VS having a file of PROGRAM_UNDEFINED.
* ir_to_mesa: Support user-defined varyings using the linker's locations.Eric Anholt2010-06-281-8/+22
| | | | Fixes glsl-reload-source.
* ir_to_mesa: Actually add the header file for the interface.Eric Anholt2010-06-281-0/+36
|
* ir_to_mesa: Fix binop_sqrt for multi-channel and negative source channels.Eric Anholt2010-06-281-1/+4
| | | | Fixes glsl-fs-sqrt-branch.
* ir_to_mesa: Fix indexes of temps used in expressions.Eric Anholt2010-06-281-29/+30
| | | | | | | It looks like I managed to horribly mangle this in some rebase of the branch. Fixes: glsl-fs-fragcoord glsl-fs-mix
* ir_to_mesa: Notify the driver when we generate new Mesa programs for GLSL.Eric Anholt2010-06-281-0/+4
| | | | Fixes glsl-fs-if-*.
* ir_to_mesa: Add support for the pow expression.Eric Anholt2010-06-281-9/+39
| | | | Fixes glsl-algebraic-pow-two.
* ir_to_mesa: Fix EmitCondCodes for boolean vars as condition.Eric Anholt2010-06-281-0/+14
| | | | Fixes glsl-vs-if-bool.
* ir_to_mesa: Respect EmitCondCodes for IF statements.Eric Anholt2010-06-281-5/+19
| | | | Fixes glsl-vs-if-* for the 965 driver.
* ir_to_mesa: Traverse the "else" instrs after "else", instead of "then" again.Eric Anholt2010-06-281-1/+1
|
* ir_to_mesa: Fix matrix * scalar multiplication.Eric Anholt2010-06-281-7/+13
| | | | | | | | | | | | We're accessing in terms of columns, so we need to do MUL/MAD/MAD/MAD instead of DP4s. Fixes: glsl-fs-exp2 glsl-fs-log2 glsl-fs-mix-constant glsl-fs-sqrt-zero glsl-vs-sqrt-zero
* ir_to_mesa: Check the right element for matrix * scalar multiplication.Eric Anholt2010-06-281-1/+1
|