summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-05-10Replace many uses of foreach_list with foreach_list_typedIan Romanick
2010-05-10exec_list: Add foreach_list_typed and foreach_list_typed_constIan Romanick
These variations are parameterized by the type of the nodes in the list. This enables skipping the explicit usage of exec_node_data in the loop body.
2010-05-10Add a very simple test for the pre-processor.Carl Worth
Validate desired test cases by ensuring the output of glcpp matches the output of the gcc preprocessor, (ignoring any lines of the gcc output beginning with '#'). Only one test case so far with a trivial #define.
2010-05-10Implment #defineCarl Worth
By using the recently-imported hash_table implementation.
2010-05-10Makefile: Enable debugging of parser.Carl Worth
This compiles the debugging code for teh parser. It's not active unless the yydebug variable is set to a non-zero value.
2010-05-10Add hash table implementation from glsl2 project.Carl Worth
The preprocessor here is intended to become part of the glsl2 codebase eventually anyway.
2010-05-10Add .gitignore file.Carl Worth
To ignore generated source files (and glcpp binary).
2010-05-10Add some compiler warnings and corresponding fixes.Carl Worth
Most of the current problems were (mostly) harmless things like missing declarations, but there was at least one real error, (reversed argument order for yyerrror).
2010-05-10Make the lexer reentrant (to avoid "still reachable" memory).Carl Worth
This allows the final program to be 100% "valgrind clean", (freeing all memory that it allocates). This will make it much easier to ensure that any allocation that parser actions perform are also cleaned up.
2010-05-10Add the tiniest shell of a flex/bison-based parser.Carl Worth
It doesn't really *do* anything yet---merlely parsing a stream of whitespace-separated tokens, (and not interpreting them at all).
2010-05-10Convert ast_node use of simple_node to exec_list and exec_nodeIan Romanick
2010-05-10exec_list: Add simpler exec_list for-each macrosIan Romanick
2010-05-10exec_list: Add macros to get ptr to structure containing a nodeIan Romanick
This has some ugly hackery to work-around C++ fail. I have emperically determined that it works in all the cases that matter.
2010-05-10Loop bodies, then-statements, and else-statements are not listsIan Romanick
The statement making up a loop body, a then-statement, or an else-statement are single nodes. If the statement is a block, the single node will be an ast_compound_statement. There is no need to loop at the top level when processing these statements.
2010-05-10Remove unnecessary include of simple_list.hIan Romanick
2010-05-10Store AST function call parameters in expressionsIan Romanick
Previously the list of function call parameters was stored as a circular list in ast_expression::subexpressions[1]. They are now stored as a regular list in ast_expression::expressions.
2010-05-05Move optimization pass prototypes to a single header.Eric Anholt
2010-05-05ir_dead_code_local: Remove redundant assignments within basic blocks.Eric Anholt
This cleans up a bunch of junk code in some of the GLSL parser tests, and could potentially help real-world too (particularly after copy propagation has happened).
2010-05-05ir_visit_tree: Make sure we visit dereference targets, too.Eric Anholt
Found this with the local dead code pass, which never saw variable dereferences occurring.
2010-05-05ir_copy_propagation: Fix up the doxygen about the file.Eric Anholt
2010-05-05ir_copy_propagation: Return true if we optimized out any assignments.Eric Anholt
This may trigger other optimization phases to make more progress themselves.
2010-05-05ir_copy_propagation: Handle swizzles and array derefs on LHS of assign.Eric Anholt
This improves the ACP to not get cleared when more complicated assignments occur, cleaning up more redundant copies in programs.
2010-05-04ir_copy_propagation: New pass to rewrite dereferences to avoid copies.Eric Anholt
This is pretty basic. Right now it only handles pure assignments -- same type on each side, no swizzling, and only within basic blocks.
2010-05-03ir_to_mesa.cpp: Fix missing types on some ir_swizzles.Eric Anholt
Debugging this took forever as I only looked at constructors in ir.cpp to find who wasn't setting up ->type. I dislike hiding code (as opposed to prototypes and definitions) in C++ header files, but in this case I have only myself to blame.
2010-05-03Remove the pedantic C junk.Eric Anholt
Mesa doesn't use pedantic ANSI C89, so I have no idea why we would.
2010-05-03Store warnings and errors in a parser state infolog.Eric Anholt
Cleans up compile warning about unused state in _mesa_glsl_warning. We would want infolog handling roughly like this anyway.
2010-05-03Quiet warnings about ir_shader not being handled in places it's not needed.Eric Anholt
2010-05-03Use the AM_SILENT_RULES when available.Eric Anholt
2010-05-03glsl_lexer: Quiet warning about unused unput().Eric Anholt
2010-05-03Merge branch 'fixes'Ian Romanick
2010-05-01Use %p rather than %08x when printing pointers to fix compile.Kenneth Graunke
2010-05-01Fix ir_return cloning to actually use the cloned subexpression.Kenneth Graunke
This caused a nasty bug where the function inliner would create new variables for each of the formal parameters, but the body would still reference the old copies. This was highly visible since the dead code eliminator (rightly) removed the new declarations, leading to printed IR that referenced non-existent variable names.
2010-04-30Fix incorrect comments in function inliner.Kenneth Graunke
2010-04-30xorg-vmwgfx: Add vmwctrl protoJakob Bornecrantz
2010-05-24mesa: Handle FEATURE_es2_glsl differences at runtime tooKristian Høgsberg
Now that we can support different APIs at runtime, we need to check the context for the API we're currently providing as well. https://bugs.freedesktop.org/show_bug.cgi?id=28194
2010-05-24llvmpipe: Delete extraneous arugment too.José Fonseca
2010-05-24llvmpipe: Remove unused sincos_test_case struct.José Fonseca
2010-05-24llvmpipe: Unit test for sin/cos that compares against reference implementation.Qicheng Christopher Li
Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-05-24gallivm: Efficient implementation of sin/cos.Qicheng Christopher Li
Based on Julien Pommier's SSE and SSE2 algorithms. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-05-23i965: Add support for all 8 possible ARB_draw_buffers in Mesa.Eric Anholt
We should be able to do 16, but are limited by Mesa's static buffer allocations.
2010-05-23i965: Fix bit allocation for number of color regions for ARB_draw_buffers.Eric Anholt
If you used all 4 color targets we currently support, we would see 0 and end up just writing the first output. Give enough bits that we can do the maximum of 16. Fixes piglit fbo-drawbuffers-maxtargets.
2010-05-23util/blitter: allow NULL clear colorMarek Olšák
2010-05-23r300g: extend compile error messageMarek Olšák
2010-05-23r300g: fix dummy vertex shader compilationMarek Olšák
2010-05-23r300g: fix warningsMarek Olšák
2010-05-22llvmpipe: Fill in slice_stride.José Fonseca
2010-05-21progs: Remove remaining EGL demos.Chia-I Wu
They have been moved to git+ssh://git.freedesktop.org/git/mesa/demos.
2010-05-21glx: Invalidate drawable in glXBindTexImageEXT() if we don't get eventsKristian Høgsberg
When we don't get invalidate events, we need to invalidate a drawable before using it for tfp to make sure we have uptodate buffers.
2010-05-21glx: Split tfp functions out to context vtableKristian Høgsberg
This introduces a new per-context vtable, which lets us clean up all the #ifdef's a bit and move the DRI2 specific implementation into dri2_glx.c.
2010-05-21st_api: Give get_egl_image arguments directly to the functionJakob Borncrantz