Commit Graph

9214 Commits

Author SHA1 Message Date
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
Brian 99e788fe56 some additional vector constructors 2007-01-16 14:10:30 -07:00
Brian 156e583a35 fix _slang_gen_subscript() for the case when a simple vector is accessed as an array: convert index to a swizzle/writemask 2007-01-16 10:45:34 -07:00
Brian 0d55346156 Use arrow keys to pan and z/Z to zoom in/out to explore the fractal. 2007-01-15 17:48:19 -07:00
Brian 2ccd264695 Added new directory of GL shading language demos: glsl 2007-01-15 17:27:24 -07:00
Brian f6507157e2 Reimplement the post-increment/decrement functions.
Instead of defining functions with an extra dummy parameter to distinguish
from the pre-incr/decr functions, just use new function names: __postIncr
and __postDecr.
2007-01-15 16:54:38 -07:00
Brian c410994653 Implement the ++var and --var operators, improve some constructors. 2007-01-15 16:38:12 -07:00