Commit Graph

9324 Commits

Author SHA1 Message Date
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
Brian 2755c798f3 BRK instruction's BranchTarget field now used for efficiently breaking out of loops.
BRK's BranchTarget field actually points to the top of the loop, not the
bottom, since we don't know the later's location yet.  In the interpreter,
basically do an indirect jump to update the PC.
2007-02-05 18:01:02 -07:00
Brian 8608079647 Use IR node's BranchNode field for IF/ELSE/ENDIF instructions.
This allows us to back-patch the IF/ELSE instruction's BranchTarget field
to point to the location of the ELSE/ENDIF instructions.  No longer have to
search for ELSE/ENDIF in the interpreter.  Also makes it trivial to translate
IF/ELSE instructions into conditional/unconditional BRA instructions.
2007-02-05 17:18:10 -07:00
Brian d9731b26e7 minor formatting changes 2007-02-05 15:17:06 -07:00
Brian 5e73284cee set UseHighLevelInstructions = false for now 2007-02-05 15:00:48 -07:00
Brian cf92c72797 Initial implementation of high-level flow-control instructions.
IF/ELSE/ENDIF and BEGIN_LOOP/END_LOOP/BREAK instructions seem to work.
Disabled by default though until better tested.
Implemented IR_NOT, but needs optimization.
2007-02-05 15:00:07 -07:00
Brian 5db088d70f indentation for program instructions (if/else, loops) 2007-02-05 14:58:15 -07:00
Brian 01001d80e2 Initial support of loop and subroutine instructions.
New high-level flow-control instructions, both at IR level and GPU instructions
for looping and subroutines.
2007-02-05 11:28:15 -07:00
Brian dd34fe8679 Merge SWvertex texcoord and varying fields into attrib[] array field.
Fragment texcoords and varying code is now unified in the point/line/triangle
rasterization code.  In the future, merge color, fog, etc. attribs.
2007-02-05 10:10:01 -07:00
Brian 93b975a1d9 Add literal_size field to slang_operation.
Used to track the number of components in a float/int/bool literal.
Helps with some typechecking things.
Fixes problems with calls such as "distance(v2, vec2(1.0, 2.0))"
2007-02-03 17:24:24 -07:00
Brian 5ee684cba9 minor tweaks to distance() funcs 2007-02-03 17:21:33 -07:00
Brian 82f53f45d9 remove unused slang_operation fields 2007-02-03 16:25:44 -07:00
Brian edf24e699e shading language texture demo/test 2007-02-03 11:36:16 -07:00
Brian 00d63aafc6 added FLUSH_VERTICES() in _mesa_use_program() 2007-02-03 11:35:02 -07:00
Brian 8e0c6fc0be added texdemo1 2007-02-03 11:33:13 -07:00
Brian 68fc4ff1d7 Add _NEW_PROGRAM flag to _MESA_NEW_NEED_EYE_COORDS.
This fixes a segfault in the texgen code that can occur after we've
disabled a vertex program.
2007-02-03 10:31:16 -07:00
Brian fee9bbe475 Only glUniform1i() can be used to set sampler uniforms. Generate error otherwise. 2007-02-02 18:05:43 -07:00
Brian a90e4c3ddf add vec4_texcube to AsmInfo[] 2007-02-02 18:00:26 -07:00
Brian 1b3092e4bb add _slang_multiply_swizzles() 2007-02-02 18:00:03 -07:00
Brian bf823b6b77 clean-ups 2007-02-02 16:46:50 -07:00
Brian 670e900719 clean-ups 2007-02-02 16:45:07 -07:00
Brian 31d2a00192 clean-ups 2007-02-02 16:41:52 -07:00
Brian b4f38a4d60 remove slang_builtin_vec4.gc 2007-02-02 16:38:04 -07:00
Brian 4bbef7a644 remove slang_builtin_vec4.gc 2007-02-02 16:38:00 -07:00
Brian d9dbb3e154 remove slang_export.[ch] 2007-02-02 16:14:55 -07:00
Brian e1b47b68ec reformat, clean-up comments 2007-02-02 16:12:20 -07:00
Brian 1f9def3163 move _slang_locate_function() 2007-02-02 16:10:02 -07:00
Brian 9cfee527f6 remove multibyte chars 2007-02-02 16:08:45 -07:00
Brian 3f71282850 remove unused field 2007-02-02 15:33:16 -07:00
Brian 72c3672857 remove slang_asm_string() 2007-02-02 15:32:32 -07:00
Brian 0d1cd6d41c s/SLANG_ASSEMBLE_TYPEINFO_H/SLANG_TYPEINFO_H/ 2007-02-02 15:31:21 -07:00
Brian 1bc71e32ea s/slang_assembly_typeinfo/slang_typeinfo/ 2007-02-02 15:30:50 -07:00
Brian fe45343df9 s/slang_assembly_name_space/slang_name_space/ 2007-02-02 15:29:48 -07:00
Brian 884fdfeb22 remove slang_library_texsample.[ch] 2007-02-02 15:23:38 -07:00
Brian 4a2ef4fd88 remove slang_library_texsample.[ch] 2007-02-02 15:23:33 -07:00
Brian 6c52dd3852 rename slang_link2.c slang_link.c 2007-02-02 15:22:05 -07:00
Brian 5c1763e7b5 rename slang_link2.c slang_link.c 2007-02-02 15:22:02 -07:00
Brian f65091c947 rename slang_assemble_typeinfo.[ch] to slang_typeinfo.[ch] 2007-02-02 15:19:58 -07:00
Brian 7ace638da2 rename slang_assemble_typeinfo.[ch] to slang_typeinfo.[ch] 2007-02-02 15:19:48 -07:00
Brian 4f22bdf3e5 remove more slang assembly-related code 2007-02-02 15:17:46 -07:00
Brian 640afdf4f2 remove more slang assembly-related files, codee 2007-02-02 15:16:51 -07:00