Commit Graph

74545 Commits

Author SHA1 Message Date
Jeremy Kolb 95fc270b06 Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/mesa 2007-01-21 20:47:10 -05:00
Jeremy Kolb ea441355d3 nouveau: Fixes for nv30. 2007-01-21 20:30:31 -05:00
Stephane Marchesin d1f0a55af4 nouveau: fix some bugs in the nv10 swtcl. 2007-01-22 00:12:05 +01:00
Stephane Marchesin 3c0961d299 nouveau: add nv04 state support, and small nv04 fixes. 2007-01-21 04:06:57 +01:00
Ben Skeggs 4f800c5bac nouveau: rename pass0_arb to pass0.
I was expecting to have 2 frontends for the shader code (asm, glsl).
With Brian's work on GLSL this is unnecessary :)
2007-01-21 09:48:33 +11:00
Ben Skeggs 029b81742a nouveau: kill off shader pass1.
It sucks, and we have someone who can do a much better job than I can starting
work on it soon.  alloc_temp/free_temp is left in pass2 to workaround fragprog
temps/outputs overlapping, but this all belongs in the optimiser.
2007-01-21 09:31:00 +11:00
Ben Skeggs ee3d0617f9 nouveau: shader backend branching support for all cards that support it. 2007-01-21 09:13:27 +11: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
Ben Skeggs 669fefd3da nouveau: bump drm patchlevel 2007-01-19 15:39:36 +11: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
Patrice Mandin 3c59483ed7 nouveau: preliminary nv50 state 2007-01-18 22:07:17 +01:00
Brian f43eac3ed8 remove swizzle param from new_var() 2007-01-18 09:22:44 -07:00
Zou Nan hai c171166987 1. Fix bug #155
2. I notice multiple ARB_occlusion_query should be able to overlap according to spec.

3. Declaring extern variables in a .c file is evil, fix it.
2007-01-18 14:41:38 +08:00
Aapo Tahkola 62efc4ba3e support as much of GL_EXT_stencil_two_side as we can. untested. 2007-01-18 05:56:13 +02:00
Aapo Tahkola feeed10dfd typo fix. this case still fails. 2007-01-18 05:30:20 +02:00
Aapo Tahkola a3b4b11739 Fix invalid enums passed to MapBuffer 2007-01-18 04:46:04 +02:00
Aapo Tahkola 2cb3594af9 Fix invalid enums passed to MapBuffer 2007-01-18 04:17:56 +02: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 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 811f54fa75 Fix/clean-up a number of things related to variable/temporary allocation. 2007-01-17 09:54:31 -07:00
Xiang, Haihao 747c9129c0 I965: fix bug#9625-get the correct PV for quardstrip
The order of vertices in payload for quardstrip is (0, 1, 3, 2),
so the PV for quardstrip is c->reg.vertex[2].
2007-01-17 10:39:50 +08: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 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