Commit Graph

9220 Commits

Author SHA1 Message Date
Brian ccea3ff8a9 fix varying interpolation 2007-01-24 14:13:36 -07:00
Brian 0552abce0e only setup varying vars that will be used 2007-01-24 14:13:02 -07:00
Brian 07373512c7 added FRAG_BIT_TEX() and FRAG_BIT_VAR() macros 2007-01-24 14:12:08 -07:00
Brian c920d201c2 updated comment 2007-01-23 17:41:25 -07:00
Brian 6d4e561e39 indicate which opcodes are used by Mesa GLSL, updated comments 2007-01-23 17:39:25 -07:00
Brian 223d7cb3c7 fix g++ warnings/errors 2007-01-23 16:37:51 -07:00
Brian bc5d480e2c added shading.html link 2007-01-21 10:37:25 -07:00
Brian 9595d1935c Added a page with shading language status, tips, etc. 2007-01-20 13:40:57 -07:00
Brian 059e901446 Add a simple mechanism for annotating instructions for easier debugging. 2007-01-20 10:47:10 -07:00
Brian f116fcc328 optimization: emit MAD instructions when possible 2007-01-20 09:46:02 -07:00
Brian 1f208c3546 remove unused swizzle parameter to -storage_to_src_reg() 2007-01-20 09:29:04 -07:00
Brian 5ae49cf3ed Initial implementation of OPCODE_IF/ELSE/ENDIF instructions. 2007-01-20 09:27:40 -07:00
Brian a3e938b8da Reimplement && and || to do short-circuit evaluation.
Improved shader error handling.
2007-01-20 09:22:13 -07:00
Brian 9f07ed00e4 rewrite more __postIncr functions 2007-01-20 07:56:00 -07:00
Brian 3cec66512d Implement do/while loops. Replace IR_CJUMP with IR_CJUMP0 and IR_CJUMP1 so
we can either jump on zero, or non-zero predicate.
2007-01-19 13:13:15 -07:00
Brian eff9690351 Rewrite normalize(vec3/vec4) to use one less register. 2007-01-19 12:19:38 -07:00
Brian dceae2829e report error message when something fails 2007-01-19 12:02:31 -07:00
Brian 203946e1f9 print error msg when there's a problem 2007-01-19 12:02:06 -07:00
Brian 74b27674a8 remove stray tab 2007-01-19 10:31:52 -07:00
Brian a0092c51b1 Implement fragment discard/kill. 2007-01-19 10:15:34 -07:00
Brian 8374ccb66f change while-loop to create new scope for loop body, per spec 2007-01-19 10:02:58 -07:00
Brian 16183e6430 Implement constant sharing so that 4 float constants can share a single
float[4] register slot.
2007-01-18 17:29:23 -07:00
Brian ce6640001d _mesa_add_unnamed_constant() now tries to re-use constants already in
the parameter list.
2007-01-18 17:23:48 -07:00
Brian d70771752f Reimplement code for swizzling so that expressions like (p+q).x for vectors p and q works correctly. 2007-01-18 15:35:44 -07:00
Brian d885ff470a rewrite a bunch of assignment operators (like +=) 2007-01-18 15:33:13 -07:00
Brian e4e66476a9 remove debug code 2007-01-18 15:23:45 -07:00
Brian f43eac3ed8 remove swizzle param from new_var() 2007-01-18 09:22:44 -07:00
Brian 8a2368edce rewrite additional matrix-related functions to reduce register needs 2007-01-17 18:37:20 -07:00
Brian 89a3bafe04 rewrite mat4 * mat4 operator to use fewer temps 2007-01-17 18:30:53 -07:00
Brian 272622a2e0 do bounds check in _slang_push_var_table(), added comment 2007-01-17 18:21:00 -07:00
Brian 2585b74e19 rewrite matrix constructors 2007-01-17 18:06:40 -07:00
Brian 4864aaeb02 handle var size > 4 in _slang_pop_var_table() 2007-01-17 18:02:44 -07:00
Brian f4e345c1a8 minor fprintf() change 2007-01-17 16:30:11 -07:00
Brian eb0c478b17 Rewrite a bunch of constructors. It's now important that the first
constructor for any given type be the one that takes the most parameters
as this is the constructor that'll be used when there's no perfect match
to the caller's arguments.
See the _slang_adapt_call() function for details.
2007-01-17 16:29:51 -07:00
Brian 3a3bb953b6 _slang_gen_function_call_name() now tries to adapt function calls (expand
vectors, insert casts) when a perfect match isn't found.
2007-01-17 16:14:03 -07:00
Brian eabb7e66bd New _slang_adapt_call() function.
This is used to modify function calls (when possible) to make the arguments
map to the function parameters.  This includes "unrolling" vector types
and doing casts.

Example:
   vec2 v2 = vec2(1.2, 3.4)
   ivec3 iv = ivec3(false, v2);
Is converted into:
   ivec3 iv = ivec3(int(false), int(v2[0]), int(v2[1]))
2007-01-17 16:11:50 -07:00
Brian 397b807ad5 code clean-up, re-org. Added IR_F_TO_I support. 2007-01-17 16:05:03 -07:00
Brian bb53124fca added IR_F_TO_I, update comments 2007-01-17 15:58:24 -07:00
Brian 0bad236cfb Added OPCODE_INT to convert 4 floats to 4 ints. 2007-01-17 15:54:14 -07:00
Brian 46a9241248 add texturing, other options 2007-01-17 10:25:44 -07:00
Brian 811f54fa75 Fix/clean-up a number of things related to variable/temporary allocation. 2007-01-17 09:54:31 -07:00
Brian 552a65e454 Implement codegen for the selection operator ( b ? x : y ) 2007-01-16 17:38:39 -07:00
Brian 3596903068 fix typo 2007-01-16 16:53:41 -07:00
Brian 271d504ed7 draw a box, press 'a' to animate 2007-01-16 15:27:11 -07:00
Brian 9d0ae967d4 added some VerteAttrib funcs 2007-01-16 14:57:12 -07:00
Brian f44ba11815 Added toyball and bumpmap tests using shaders from the OpenGL Shading Language (orange) book. 2007-01-16 14:55:43 -07:00
Brian 9b5dc1358a when automatically binding vertex attributes, start with attrib 1, not 0 2007-01-16 14:52:22 -07:00
Brian 4f027a33b9 remove dead code 2007-01-16 14:19:37 -07:00
Brian 0f91310bf3 comments 2007-01-16 14:17:57 -07:00
Brian d90c655b05 implement logical or, xor, not 2007-01-16 14:15:05 -07:00