summaryrefslogtreecommitdiffstats
path: root/src/glsl
Commit message (Collapse)AuthorAgeFilesLines
* glsl2/builtins: Use vector ops in the 130 version of "sign."Kenneth Graunke2010-07-021-15/+3
|
* glsl2/builtins: Use vector ops in "smoothstep."Kenneth Graunke2010-07-021-86/+15
|
* glsl2: Print the linking info log in the stand-alone compilerIan Romanick2010-07-021-0/+3
|
* glsl2: Add a pass to break ir_binop_div to _mul and _rcp.Eric Anholt2010-07-023-0/+79
| | | | This results in constant folding of a constant divisor.
* glsl2: Conditionally allow optional extensions to be enabledIan Romanick2010-07-013-0/+10
| | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array.
* glsl2: Append _TOK to some parser tokensIan Romanick2010-07-012-7/+7
| | | | | This prevents conflicts with defines elsewhere in Mesa and allows including mtypes.h in the compiler.
* glsl2: Conditionally define preprocessor tokens for optional extensionsIan Romanick2010-07-016-11/+23
| | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array.
* glsl2: Define preprocessor tokens for extensionsIan Romanick2010-07-011-1/+17
| | | | | | Currently only GL_ARB_draw_buffers and GL_ARB_texture_rectangle are defined because those extensions are always enabled. This make tex_rect-03.frag pass.
* glsl2: Support AST-to-IR translation of invariant keywordIan Romanick2010-07-011-14/+70
|
* glsl2: Initialize ast_declarator_list::invariant in constructorIan Romanick2010-07-011-0/+1
|
* glsl2: Don't bounds check unsize array redeclarationsIan Romanick2010-07-011-1/+1
| | | | This along with several previous commits fix test CorrectUnsizedArray.frag.
* glsl2: Add gl_MaxTextureCoordsIan Romanick2010-07-014-22/+23
|
* glsl2: Default delcaration of gl_TexCoord is unsizedIan Romanick2010-07-012-11/+34
|
* glsl2: Change order of semaintic checks on variable declarationsIan Romanick2010-07-011-61/+61
| | | | This will make it easier to support more (valid) kinds of redeclarations.
* glsl2: Update README for what I've been thinking about with expr types work.Eric Anholt2010-07-011-1/+38
|
* glsl2: Add a pass to convert mod(a, b) to b * fract(a/b).Eric Anholt2010-07-017-7/+117
| | | | This is used by the Mesa IR backend to implement mod, fixing glsl-fs-mod.
* glsl2: Remove dead member from dead code visitor.Eric Anholt2010-07-011-1/+0
|
* glsl2: Add ir_unop_fract as an expression type.Eric Anholt2010-07-015-8/+29
| | | | | Most backends will prefer seeing this to seeing (a - floor(a)), so represent it explicitly.
* glsl2: Don't break sign() down by vector components.Eric Anholt2010-06-302-32/+6
|
* glsl2: Fix reversed value of step().Eric Anholt2010-06-302-38/+38
| | | | It's 0.0 if x < edge, not 1.0. Partial fix for glsl-fs-step.
* glsl2: Fix up the implementation of fract() for vector types.Eric Anholt2010-06-302-30/+6
| | | | There's no need to split each vector component out, just do vector ops.
* glsl2: Implement AST->HIR support for the "discard" instruction.Kenneth Graunke2010-06-301-1/+1
|
* glsl2: Define new ir_discard instruction.Kenneth Graunke2010-06-3010-0/+107
|
* glsl2: Allow a fragment shader to not write a color.Eric Anholt2010-06-301-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.
* 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-301-4/+1
|
* 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-301-0/+11
|
* linker: Don't dynamically allocate slots for linked shadersIan Romanick2010-06-301-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_GENERIC0Ian Romanick2010-06-301-0/+6
|
* glsl2: Use Mesa's gl_shader_program instead of our own struct glsl_program.Eric Anholt2010-06-303-43/+11
| | | | 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-304-69/+67
| | | | | 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: Start adding support for texture instructions.Eric Anholt2010-06-291-0/+6
| | | | | | | 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-293-24/+33
|
* 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
|