Commit Graph

17 Commits

Author SHA1 Message Date
Eric Anholt c2014f03e8 ir_to_mesa: Add support for trunc/ceil/floor. 2010-06-24 15:05:20 -07:00
Eric Anholt 3c5979565f ir_to_mesa: Add sin/cos. 2010-06-24 15:05:20 -07:00
Eric Anholt 4a1bd916e7 ir_to_mesa: Fix up array indexing.
The grammar for array_reference_vec4_vec4 was set up wrong, so we
weren't generating instructions if necessary for the array index.
2010-06-24 15:05:20 -07:00
Eric Anholt bdbd9f112e ir_to_mesa: Add support for variable indexing of temporary arrays.
Fixes loop-01.vert, loop-02.vert.
2010-06-24 15:05:20 -07:00
Eric Anholt c5ca73e72c ir_to_mesa: Add support for ir_if. 2010-06-24 15:05:20 -07:00
Eric Anholt 3831507957 ir_to_mesa: Add support for comparison operations. 2010-06-24 15:05:20 -07:00
Eric Anholt bf99533350 ir_to_mesa: Introduce shorthand for common Mesa IR emit patterns. 2010-06-24 15:05:20 -07:00
Eric Anholt 423a75c5d6 ir_to_mesa: Add ir_unop_f2i -> OPCODE_TRUNC. 2010-06-24 15:05:20 -07:00
Eric Anholt 878740bedf ir_to_mesa: Add codegen for rsq expression operation. 2010-06-24 15:05:20 -07:00
Eric Anholt 8c29a1d84d ir_to_mesa: Add exp/log expression operations. 2010-06-24 15:05:20 -07:00
Eric Anholt f30100c19c ir_to_mesa: Fix copy'n'paste bug where divide multiplied left by 1/left.
Multiply left by 1/right, please.
2010-06-24 15:05:20 -07:00
Eric Anholt b07cc372c6 ir_to_mesa: Handle swizzles on LHS of assignment (writemasks). 2010-06-24 15:05:19 -07:00
Eric Anholt 12f654c63b ir_to_mesa: Produce multiple scalar ops when required to produce vec4s.
Fixes the code emitted in a test shader for vec2 texcoord / vec2 tex_size.
2010-06-24 15:05:19 -07:00
Eric Anholt b2ed4dd7b0 ir_to_mesa: Get temps allocated at the right times.
The alloced_vec4/vec4 distinction was an experiment to expose the cost
of temps to the codegen.  But the problem is that the temporary
production rule gets called after the emit rule that was using the
temp.  We could have the args to emit_op be pointers to where the temp
would get allocated later, but that seems overly hard while just
trying to bring this thing up.  Besides, the temps used in expressions
bear only the vaguest relation to how many temps will be used after
register allocation.
2010-06-24 15:05:19 -07:00
Eric Anholt 7aa0b034f7 ir_to_mesa: Fix up the assign rule to use left and right correctly.
The destination of assign is in left, not in the node itself.
2010-06-24 15:05:19 -07:00
Eric Anholt f14913d4b7 ir_to_mesa: Do my best to explain how the codegen rules work. 2010-06-24 15:05:19 -07:00
Eric Anholt 84771df82e ir_to_mesa: Start building GLSL IR to Mesa IR conversion.
There are major missing pieces here.  Most operations aren't
supported.  Matrices need to be broken down to vector ops before we
get here.  Scalar operations (RSQ, RCP) are handled incorrectly.
Arrays and structures are not even considered.
2010-06-24 15:05:19 -07:00