Commit Graph

9365 Commits

Author SHA1 Message Date
Brian f941892829 Reimplement the _slang_alloc_statevar() function.
After several tries at making a table-based system for examining pre-defined
uniforms to find statevar indexes, give up and do it the simple way (lots of
strcmp() calls).  Not terribly elegant, but perfectly functional.
2007-02-21 15:21:58 -07:00
Brian 6531952b3c adjustments to STATE_ token layout/format so token[1] is always the array index 2007-02-21 11:08:21 -07:00
Brian c3301d038d checkpoint overhaul of pre-defined uniform code 2007-02-21 09:15:39 -07:00
Brian aa7ddbd0ff clean-up, move IR_ELEMENT code 2007-02-20 17:00:16 -07:00
Brian 760c114b24 alloc IR_FIELD's Storage in codegen, like IR_ELEMENT 2007-02-20 16:56:49 -07:00
Brian 10f42ddb9e work on struct/array handling 2007-02-20 15:22:38 -07:00
Brian 361b60678e forgot to return length in parse_array_len() 2007-02-20 15:20:46 -07:00
Brian 243c2dd746 implement support for pre-defined uniform structs (state vars) 2007-02-20 14:03:43 -07:00
Brian 48d65aabbc added slang_builtin.c 2007-02-20 14:03:10 -07:00
Brian bd894c4705 added SWIZZLE_XXXX, SWIZZLE_YYYY, etc 2007-02-20 10:40:08 -07:00
Brian 174c555414 remove accidental check-in 2007-02-20 08:05:29 -07:00
Brian 3d001b81c2 Merge branch 'glsl-compiler-1' of git+ssh://brianp@git.freedesktop.org/git/mesa/mesa into glsl-compiler-1 2007-02-20 08:04:40 -07:00
Brian 9449a4d894 s/PROG_PRINT_ARB/PROG_PRINT_DEBUG/ 2007-02-17 09:41:59 -07:00
Brian 61d31ae10d info about stand-alone compiler 2007-02-17 09:41:19 -07:00
Brian cc153541a2 stand-alone GLSL compiler 2007-02-17 09:15:39 -07:00
Brian 501ee87180 Lots of changes to prog_print.c code.
Mainly, allow printing programs in either ARB, NV or "debug" formats.
2007-02-17 09:15:00 -07:00
Brian 00647c39de remove dead code 2007-02-16 09:59:27 -07:00
Brian c177191804 s/_slang_link2/_slang_link/ 2007-02-16 09:56:19 -07:00
Brian 1c1a0a23d3 change all enum tokens to uppercase 2007-02-16 09:31:35 -07:00
Brian d15059b128 abort upon errors (temporary) 2007-02-16 09:06:09 -07:00
Brian d30806b0c5 added a comment 2007-02-16 09:05:11 -07:00
Brian 9ea2315d2d Allow int->float argument conversion in _slang_locate_function(). 2007-02-16 09:04:53 -07:00
Brian d003877c66 implement IR_I_TO_F 2007-02-16 08:58:42 -07:00
Brian ed490e4643 remove dead code 2007-02-13 09:23:00 -07:00
Brian 5620392d67 add prog_debug.c 2007-02-09 15:40:15 -07:00
Brian 942ee02590 move GL_MESA_program_debug funcs to prog_debug.c 2007-02-09 15:40:00 -07:00
Brian 383ecc0374 Move experimental GL_MESA_program_debug functions into new file. 2007-02-09 15:39:32 -07:00
Brian b3893baf80 comments, etc 2007-02-09 14:19:12 -07:00
Brian 3d479b9638 re-enable free'ing of IR trees 2007-02-09 14:18:41 -07:00
Brian cf490a7f81 always init param vars to silence valgrind warnings 2007-02-09 12:04:52 -07:00
Brian 5e6908944b do full swizzled matching in _mesa_lookup_parameter_constant() 2007-02-08 20:39:42 -07:00
Brian bd9615bbc5 Check for constant-valued while/do loop conditions.
Allows us to:
1. avoid generating constant-valued BRK test for while(1)..
2. discard entire loop for while(0).
3. detection infinite loops at compile-time.
2007-02-08 17:40:29 -07:00
Brian c0a9f554be optimize conditional breaks/continues 2007-02-08 17:11:18 -07:00
Brian 6230ae7faf cont at top of loop, little clean-ups 2007-02-08 15:09:47 -07:00
Brian a1c2e87c4b remove some cruft 2007-02-08 15:08:16 -07:00
Brian fbf0f400b7 fix broken BRA for return stmts 2007-02-08 14:10:54 -07:00
Brian 34af2b7194 consolidate BRA with BRK, CONT 2007-02-08 14:10:19 -07:00
Brian c81aedeaec change BranchTarget to GLint 2007-02-08 14:09:34 -07:00
Brian b768c48547 Use conditional break in for/do/while loops. 2007-02-08 13:23:17 -07:00
Brian 97125fb370 Simplify code with eval_condition(). Implement conditional BRK. 2007-02-08 13:22:31 -07:00
Brian 2c75ef62ea remove old loop break/cont stuff 2007-02-07 16:19:19 -07:00
Brian b35b4566c2 high vs. low level if/then/else code emit 2007-02-07 16:11:00 -07:00
Brian c5e6bf63e6 s/%f/%g/ 2007-02-07 16:09:13 -07:00
Brian a7c2c7d6b2 Remove old functions for generating BRA-based looping. 2007-02-07 15:14:20 -07:00
Brian 4aa487e796 Use IR_LOOP to represent do-while and for-loops.
Also, start moving high vs. low-level instruction selection into slang_emit.c
2007-02-07 15:12:13 -07:00
Brian 1f99a7514e BRK and CONT work the same 2007-02-06 22:34:09 -07:00
Brian f22ed0986a Implement CONT, improve BRK.
IR_LOOP's BranchNode ptr is the head of a linked list of CONT and BRK nodes.
After emitting loop, walk over the linked list, filling in the CONT/BRK
instruction's BranchTarget field (location of the ENDLOOP instruction, or
one past).
2007-02-06 22:31:19 -07:00
Brian 5f7d4668c4 replace IR_BEGIN_LOOP/IR_END_LOOP with IR_LOOP 2007-02-06 21:33:29 -07:00
Brian 7e73bc32f5 new_node[0123]() functions 2007-02-06 20:53:09 -07:00
Brian 2043364516 redo IR_IF node, removing IR_ELSE, IR_ENDIF 2007-02-06 20:45:43 -07:00