summaryrefslogtreecommitdiffstats
path: root/src/glsl
Commit message (Collapse)AuthorAgeFilesLines
* glsl: Fix dependencies / linkage for glsl_compilerIan Romanick2011-01-311-2/+2
|
* glsl: regerated filesBrian Paul2011-01-312-125/+118
|
* glsl: make _token_list_is_empty_ignoring_space() staticBrian Paul2011-01-311-1/+1
| | | | To silence warning about missing prototype.
* scons/glsl: add top-level 'include' dir to CPPPATHBrian Paul2011-01-311-0/+1
| | | | | To avoid using the /usr/include/GL/gl.h file which may be lacking some special #defines.
* glsl: add cast to silence signed/unsigned comparison warningBrian Paul2011-01-311-1/+1
|
* glsl: Define va_copy on MSVC.José Fonseca2011-01-311-0/+8
|
* glsl/builtins: Uncomment prototypes for texture*Offset functions.Kenneth Graunke2011-01-312-20/+0
|
* texture_builtins.py: Generate texture*Offset functions.Kenneth Graunke2011-01-311-5/+80
|
* texture_builtins.py: Generalize the "use_proj" field to support offsets.Kenneth Graunke2011-01-311-52/+57
| | | | | | | | Rather than passing "True", pass a bitfield describing the particular variant's features - either projection or offset. This should make the code a bit more readable ("Proj" instead of "True") and make it easier to support offsets in the future.
* texture_builtins.py: Refactor coordinate dimension calculations.Kenneth Graunke2011-01-311-5/+9
| | | | | For offsets, we'll want the straight sampler dimensionality, without the +1 for array types. Create a new function to do that; refactor.
* glsl: Introduce a new "const_in" variable mode.Kenneth Graunke2011-01-3112-4/+36
| | | | | | | | This annotation is for an "in" function parameter for which it is only legal to pass constant expressions. The only known example of this, currently, is the textureOffset functions. This should never be used for globals.
* glsl: Change texel offsets to a single vector rvalue.Kenneth Graunke2011-01-318-29/+42
| | | | | | | | | | | Having these as actual integer values makes it difficult to implement the texture*Offset built-in functions, since the offset is actually a function parameter (which doesn't have a constant value). The original rationale was that some hardware needs these offset baked into the instruction opcode. However, at least i965 should be able to support non-constant offsets. Others should be able to rely on inlining and constant propagation.
* glsl: Re-synchronize ir_variable_mode and the printer's string array.Kenneth Graunke2011-01-311-1/+1
| | | | | | Since the introduction of ir_var_system_value, system variables would be printed as "temporary" and temporaries would result in out-of-bounds array access, showing up as garbage in printed IR.
* Remove talloc from the SCons build system.Kenneth Graunke2011-01-311-19/+1
|
* Remove talloc from the make and automake build systems.Kenneth Graunke2011-01-311-4/+2
|
* ralloc: a new MIT-licensed recursive memory allocator.Kenneth Graunke2011-01-312-35/+280
|
* Convert everything from the talloc API to the ralloc API.Kenneth Graunke2011-01-3154-499/+491
|
* ralloc: Add a fake implementation of ralloc based on talloc.Kenneth Graunke2011-01-314-0/+542
|
* Revert "glcpp: Demote "macro redefined" from an error to a warning"Carl Worth2011-01-294-38/+15
| | | | | | | | This reverts commit d3df641f0aba99b0b65ecd4d9b06798bca090a29. The original commit had sat unpushed on my machine for months. By the time I found it again, I had forgotten that we had decided not to use this change after all, (the relevant test was removed long ago).
* glcpp: Demote "macro redefined" from an error to a warningCarl Worth2011-01-284-15/+38
| | | | | | | | | | The GLSL specification is vague here, (just says "as is standard for C++"), though the C specifications seem quite clear that this should be an error. However, an existing piglit test (CorrectPreprocess11.frag) expects this to be a warning, not an error, so we change this, and document in README the deviation from the specification.
* glsl: Refresh autogenerated lexer fileChad Versace2011-01-261-117/+118
| | | | For previous commit.
* glsl: Remove extraneously extraneous parensChad Versace2011-01-261-1/+1
| | | | | | I found this parenthetical usage of parentheses to be extraneously extraneous: (yyextra->ARB_fragment_coord_conventions_enable)
* glsl: Enable AMD_conservative_depth in parserChad Versace2011-01-261-0/+7
| | | | | All the necessary compiler infrastructure for AMD_conservative_depth is in place, so it's safe to enable it in the parser.
* glsl: Raise linking error if gl_FragDepth layout is inconsistentChad Versace2011-01-261-0/+26
| | | | | | | | | From the AMD_conservative_depth spec: If gl_FragDepth is redeclared in any fragment shader in a program, it must be redeclared in all fragment shaders in that program that have static assignments to gl_FragDepth. All redeclarations of gl_FragDepth in all fragment shaders in a single program must have the same set of qualifiers.
* glsl: Propagate depth layout qualifier from AST to IRChad Versace2011-01-263-0/+73
|
* glsl: Define enum ir_depth_layoutChad Versace2011-01-262-0/+35
|
* glsl: Refresh autogenerated parser filesChad Versace2011-01-263-165/+180
| | | | | | For commits titled: glcpp: Conditionally define macro GL_AMD_conservative_depth glsl: Add support for AMD_conservative_depth to parser
* glsl: Add support for AMD_conservative_depth to parserChad Versace2011-01-263-8/+34
| | | | | | | | | | When AMD_conservative_depth is enabled: * Let 'layout' be a token. * Extend the production rule of layout_qualifier_id to process the tokens: depth_any depth_greater depth_less depth_unchanged
* glsl: Add depth layout qualifiers to ast_type_qualifierChad Versace2011-01-261-0/+8
|
* glcpp: Conditionally define macro GL_AMD_conservative_depthChad Versace2011-01-261-0/+2
| | | | | Define macro GL_AMD_conservative_depth to 1 when its extension is enabled.
* linker: Propagate max_array_access while linking functionsIan Romanick2011-01-252-4/+13
| | | | | | | | | Update the max_array_access of a global as functions that use that global are pulled into the linked shader. Fixes piglit test glsl-fs-implicit-array-size-01 and bugzilla #33219. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* linker: Set sizes for non-global arrays as wellIan Romanick2011-01-251-18/+17
| | | | | | | | | Previously only global arrays with implicit sizes would be patched. This causes all arrays that are actually accessed to be sized. Fixes piglit test glsl-fs-implicit-array-size-02. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glsl: silence uninitialized var warning in read_texture()Brian Paul2011-01-251-1/+4
| | | | And generate an error if the texture pattern is not matched.
* glsl: Fix mingw crosscompileJakob Bornecrantz2011-01-251-0/+1
|
* glsl: Remove long unused 'configure.ac' file.Kenneth Graunke2011-01-241-69/+0
| | | | This was from way back when glsl2 lived in its own repository.
* glsl: Don't assert when the value returned by a function has no rvalueIan Romanick2011-01-221-13/+12
| | | | | | | | | | | | | | | The rvalue of the returned value can be NULL if the shader says 'return foo();' and foo() is a function that returns void. Existing GLSL specs do *NOT* say that this is an error. The type of the return value is void. If the return type of the function is also void, then this should compile without error. I expect that future versions of the GLSL spec will fix this (wink, wink, nudge, nudge). Fixes piglit test glsl-1.10/compiler/expressions/return-01.vert and bugzilla #33308. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glcpp: Regenerate parser files.Kenneth Graunke2011-01-211-229/+231
|
* glcpp: Remove use of talloc reference counting.Kenneth Graunke2011-01-211-13/+7
| | | | | We almost always want to simply steal; we only need to copy when copying a token list (in which case we're already cloning stuff anyway).
* glsl, i965: Remove unnecessary talloc includes.Kenneth Graunke2011-01-213-12/+0
| | | | These are already picked up by ir.h or glsl_types.h.
* glsl: Improve error message when read-only vars are writtenChad Versace2011-01-212-7/+29
| | | | | | Improves the cases when: * an explicit assignment references the read-only variable * an 'out' or 'inout' function parameter references the read-only variable
* glsl: Mark 'in' variables at global scope as read-onlyChad Versace2011-01-211-1/+2
| | | | | | | Fixes Piglit tests: spec/glsl-1.30/compiler/storage-qualifiers/static-write-centroid-in-01.frag spec/glsl-1.30/compiler/storage-qualifiers/static-write-in-01.frag spec/glsl-1.30/compiler/storage-qualifiers/static-write-in-02.frag
* glsl: Remove unused class ast_declaration_statmentChad Versace2011-01-211-19/+0
|
* Add machine generated files to .gitignoretwied2011-01-191-0/+1
|
* glsl: Don't bother unsetting a destructor that was never set.Kenneth Graunke2011-01-191-6/+3
| | | | This was totally copied and pasted from glsl_symbol_table.
* glsl: Fix segfault due to missing printf argumentChad Versace2011-01-181-1/+2
| | | | | | | | Fixes the following Piglit tests: glslparsertest/shaders/array2.frag glslparsertest/shaders/dataType6.frag NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glsl: Fix semantic checks on precision qualifiersChad Versace2011-01-181-9/+8
| | | | | | The check for Precision qualifiers only apply to floating point and integer types. was incomplete. It rejected only type 'bool' and structures.
* glsl: Skip the rest of loop unrolling if no loops were found.Eric Anholt2011-01-183-2/+9
| | | | | Shaves 1.6% (+/- 1.0%) off of ff_fragment_shader glean texCombine time (n=5).
* glsl: Refresh autogenerated parser filesChad Versace2011-01-172-431/+442
|
* glsl: Remove redundant semantic check in parserChad Versace2011-01-171-6/+0
| | | | | | | | The removed semantic check also exists in ast_type_specifier::hir(), which is a more natural location for it. The check verified that precision statements are applied only to types float and int.
* glsl: Add support for default precision statementsChad Versace2011-01-174-9/+67
| | | | | | * Add new field ast_type_specifier::is_precision_statement. * Add semantic checks in ast_type_specifier::hir(). * Alter parser rules accordingly.