Eric Anholt
2ee85e20c8
ir_to_mesa: Remove stale comment about monoburg.
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
4e5e0f018b
ir_to_mesa: Clean up some handling of builtins and arrays.
...
Constant-index dereferences of arrays should work now. One test is
regressed, but it should have been failing before this commit, too.
2010-06-24 15:05:20 -07:00
Eric Anholt
64fcbbca9c
ir_to_mesa: Add support for loops.
...
Fixes CorrectParse1 and the glsl2 loop tests that don't use arrays.
2010-06-24 15:05:20 -07:00
Eric Anholt
4380099c98
ir_to_mesa: Add logic_or and logic_and to get CorrectFunction1.vert working.
2010-06-24 15:05:20 -07:00
Eric Anholt
763cd75863
ir_to_mesa: add logic_xor to get CorrectParse2.vert working.
2010-06-24 15:05:20 -07:00
Eric Anholt
1d20862c8a
ir_to_mesa: add logic_not and f2b to get CorrectParse2.frag working.
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
829e0a8eff
ir_to_mesa: Add (almost) the rest of the builtin varyings.
2010-06-24 15:05:20 -07:00
Eric Anholt
110d5cc83c
ir_to_mesa: Support gl_Position output.
2010-06-24 15:05:20 -07:00
Eric Anholt
8041bce333
ir_to_mesa: Support gl_FragData[] output.
2010-06-24 15:05:20 -07:00
Eric Anholt
48e282d8a2
ir_to_mesa: Support gl_FragData[] output.
2010-06-24 15:05:20 -07:00
Eric Anholt
50ad96ebce
ir_to_mesa: Start doing some int support.
2010-06-24 15:05:20 -07:00
Eric Anholt
315c638b8c
ir_to_mesa: Fix bugs in swizzle handling for scalar operations.
...
Looking at a vec2 / float codegen, the writemasks on the RCPs were wrong and
the swizzle on the multiply by the RCP results was wrong.
2010-06-24 15:05:20 -07:00
Eric Anholt
3d70d1f4d6
ir_to_mesa: Emit more reduced writemasks for ops on small types.
...
This should help prevent Mesa from having to be smart to give
channel-wise drivers better information.
2010-06-24 15:05:19 -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
ae252d3613
ir_to_mesa: Make the first temp index we use 1 to show off bugs.
...
Regs aren't allocated at the right times yet, so we see TEMP[0] a lot.
2010-06-24 15:05:19 -07:00
Eric Anholt
b7abce770f
ir_to_mesa: Print out the ir along with the Mesa IR.
...
Ideally this would be hooked up by ir_print_visitor dumping into a
string that we could include as prog_instruction->Comment when in
debug mode, and not try keeping ir_instruction trees around after
conversion to Mesa. The ir_print_visitor isn't set up to do that for
us today.
2010-06-24 15:05:19 -07:00
Eric Anholt
3419583266
ir_to_mesa: Fix up src reg swizzling.
2010-06-24 15:05:19 -07:00
Eric Anholt
c554d7cede
ir_to_mesa: Remove dead code from when this was an ARB_fp printer.
2010-06-24 15:05:19 -07:00
Eric Anholt
8197eeee3b
ir_to_mesa: Fill in more bits of dest resg.
2010-06-24 15:05:19 -07:00
Eric Anholt
aaee40e107
ir_to_mesa: Print out the resulting program.
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