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