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
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