Commit Graph

19817 Commits

Author SHA1 Message Date
Brian be1b8e5d6c mesa: new _mesa_is_pow_two() function 2008-11-10 20:16:00 -07:00
Brian Paul 8df4f6667f mesa: restore glapi/ prefix on #include 2008-11-10 16:38:47 -07:00
Brian Paul 1dae2be1f6 dri: alloc __DRIscreen object with calloc()
Conflicts:
        src/mesa/drivers/dri/common/dri_util.c
2008-11-10 15:06:13 -07:00
Brian Paul df84f788d2 mesa: fix logic error in GLSL linker when looking for main() shaders 2008-11-10 14:59:34 -07:00
Brian Paul 59cc973940 mesa: fix some misc breakage caused by editing auto-generated files rather than the python generators
Specifically:
  #include "glapitable.h" in src/mesa/main/glapi/dispatch.h
  Call _mesa_bsearch() in src/mesa/main/enums.c.
2008-11-10 14:42:02 -07:00
Brian Paul 13f96c5401 GLX: fix out-of-bounds memory issue in indirect glAreTexturesResident()
See bug 18445.
When getting array results, __glXReadReply() always reads a multiple of
four bytes.  This can cause writing to invalid memory when 'n' is not a
multiple of four.

Special-case the glAreTexturesResident() functions now.
To fix the bug, we use a temporary buffer that's a multiple of four bytes
in length.

NOTE: this commit also reverts part of commit 919ec22ecf
(glx/x11: Added some #ifdef GLX_DIRECT_RENDERING protection) which
directly edited the indirect.c file rather than the python generator!
I'm not repairing that issue at this time.
2008-11-10 14:27:42 -07:00
Brian Paul 6186e7a206 dri: alloc __DRIscreen object with calloc() 2008-11-10 12:39:36 -07:00
Brian Paul 2d76a0d77a mesa: track initialization status of uniform variables. Plus, asst clean-ups. 2008-11-10 12:39:36 -07:00
Brian Paul 379ff8c956 mesa: initial support for uniform variable initializers.
This lets one specify initial values for uniforms in the code, avoiding
the need to call glUniform() in some cases.
2008-11-10 12:39:36 -07:00
Brian Paul 242c0cb543 mesa: fix logic error in GLSL linker when looking for main() shaders 2008-11-10 12:39:36 -07:00
Brian Paul 80c8017a64 mesa: allows 'f' suffix on GLSL float literals 2008-11-10 12:39:36 -07:00
Brian Paul e5359401d6 undo accidental changes to multitex.frag shader 2008-11-10 12:39:36 -07:00
Brian Paul 2b66417402 Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:

	src/gallium/auxiliary/util/u_math.c
2008-11-10 11:19:30 -07:00
Pekka Paalanen eb4dded5be Mesa: fix number of buffers in st_draw_vbo().
The clean-up call to pipe->set_vertex_buffers() should use the same
number of buffers as the first call.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-10 11:16:15 -07:00
Brian Paul 2276dcf05f gallium: fix typos in comments 2008-11-10 08:24:45 -07:00
Zack Rusin 5668e7fa80 gallium: actually flip the coordinates 2008-11-10 08:05:20 -07:00
Ben Skeggs 1d6cba6572 nouveau: remove previous hack around x86_64 breakage
This hack now causes breakage *doh*. :)
2008-11-10 16:33:31 +11:00
Ben Skeggs e658950d4e nv40: init pipe_surface correctly 2008-11-10 16:12:28 +11:00
Ben Skeggs 66eacb3fed nouveau: pass object handle not pointer to GPU... 2008-11-10 15:58:03 +11:00
Ben Skeggs 32e6be6362 Merge remote branch 'origin/gallium-0.2' into gallium-0.2 2008-11-10 15:53:51 +11:00
Brian 325cbeb29a util: Fix util_fast_pow/exp2/log2.
- Use a lookup table for log2.

- Compute (float) (1 << ipart) by tweaking with the exponent directly to
avoid integer overflow and float conversion.

- Also table negative exponents to avoid float division and branching.

- Implement util_fast_exp as function of util_fast_exp2.

--------

Cherry-picked from gallium-0.2: 8415d06d90

This fixes some pow() glitches seen in fslight.c, spectex.c, etc.

Conflicts:
       src/gallium/auxiliary/util/u_math.h
2008-11-09 10:17:43 -07:00
Brian 7e83157019 gallium: _debug_vprintf() should be silent if DEBUG is not defined 2008-11-09 09:45:12 -07:00
Brian 399da3a337 gallium: use PIPE_ARCH_SSE to protect use of SSE instrinsics only
This allows us to use SSE codegen with debug builds again.
When PIPE_ARCH_SSE is set (w/ gcc -msse -msse2) we will also use the
gcc SSE intrinsic functions.
2008-11-09 09:36:22 -07:00
Pekka Paalanen 94631e63a8 Mesa: fix number of buffers in st_draw_vbo().
The clean-up call to pipe->set_vertex_buffers() should use the same
number of buffers as the first call.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-09 01:02:10 +02:00
Pekka Paalanen 72ae2bd856 Nouveau: fix nv20_vertex_layout()
The function should update nv20->vertex_info, and not just a
local struct that's thrown away immediately.

Fixes a SIGFPE due to vbuf->vertex_size = 0 in vbuf_alloc_vertices().

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-09 00:58:19 +02:00
Brian f1c9016af1 mesa: remove OPCODE_INT #define 2008-11-08 10:33:30 -07:00
Brian a58dbf34ca gallium: implement SSE codegen for TGSI_OPCODE_NRM/NRM4 2008-11-08 10:29:23 -07:00
Brian e24afc808f mesa: use NRM3 in emit_normalize_vec3() when drivers are ready 2008-11-08 10:29:03 -07:00
Pekka Paalanen 903ae9d04e Nouveau: update nv20 miptree according to nv40.
glxinfo doesn't degfault anymore.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08 19:07:04 +02:00
Pekka Paalanen 0da43322bb Nouveau: build, link and use nv20.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08 18:32:33 +02:00
Pekka Paalanen b5a3c4272b Nouveau: name replace for nv20.
No functional changes, only changed function, struct, macro etc. names.
nv10 -> nv20
nv30 -> nv20
celsius -> kelvin
Did not touch fifo command macros.

Don't try to build nv20_vertprog.c for now.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08 18:04:33 +02:00
Pekka Paalanen 83bb818560 Nouveau: Rename nv20/ files as nv20.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08 17:20:19 +02:00
Pekka Paalanen f910371b37 Nouveau: copy nv30_vertprog.c to nv20.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08 17:09:16 +02:00
Pekka Paalanen 0344b0e32e Nouveau: start nv20 by copying the nv10 tree.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08 17:04:45 +02:00
Brian Paul 87d1a26ba3 mesa: add support for 'centroid' qualifier in GLSL 1.20 2008-11-07 16:08:21 -07:00
Brian Paul 448156f769 mesa: add support for 'invariant' keyword for GLSL 1.20 2008-11-07 15:51:10 -07:00
Brian Paul b632e5aa7f mesa: reformat comments, rewrap lines, etc for a little better readability 2008-11-07 14:28:00 -07:00
Brian Paul a52a6d7bcd gallium: added SSE for DP2, DP2A 2008-11-07 13:03:07 -07:00
Brian Paul cf9836cf09 gallium: implement TGSI_OPCODE_DP2A, add sqrt to NRM3/NRM4 2008-11-07 13:02:43 -07:00
Brian Paul 49680dae5d Merge commit 'origin/master' into gallium-0.2 2008-11-07 13:02:07 -07:00
Brian Paul 22459e7a9c mesa: forgot sqrt in NRM3/4 instructions 2008-11-07 12:59:36 -07:00
Brian Paul 6dc91b8371 mesa: fix opcode table order bug 2008-11-07 12:59:08 -07:00
Robert Ellison b493fdd7e3 CELL: fix several stencil problems
This small set of changes repairs several different stenciling problems;
now redbook/stencil also runs correctly (and maybe others - I haven't
checked everything yet).

- The number of instructions that had been allocated for fragment ops
  used to be 64 (in cell/common.h).  With complicated stencil use, we
  managed to get up to 93, which caused a segfault before we noticed
  we'd overran our memory buffer.  It's now been bumped to 128,
  which should be enough for even complicated stencil and fragment op
  usage.

- The status of cell surfaces never changed beyond the initial
  PIPE_SURFACE_STATUS_UNDEFINED.  When a user called glClear()
  to clear just the Z buffer (but not the stencil buffer), this caused
  the check_clear_depth_with_quad() function to return false (because
  the surface status was believed to be undefined), and so the device
  was instructed to clear the whole buffer (including the stencil buffer),
  instead of correctly using a quad to clear just the depth, leaving the
  stencil alone.

  This has been fixed similarly to the way the i915 driver handles
  the surface status: during cell_clear_surface(), the status is
  set to PIPE_SURFACE_STATUS_DEFINED.  Then a partial buffer clear is
  handled with a quad, as expected.  Note that we are *not* using
  PIPE_SURFACE_STATUS_CLEAR (also similar to the i915); technically,
  we should be setting the surface status to CLEAR on a clear, and
  to DEFINED when we actually draw something (say on cell_vbuf_draw()),
  but it's difficult to figure out exactly which surfaces are affected
  by a cell_vbuf_draw(), so for now we're doing the easy thing.

- The fragment ops handling was very clever about only pulling out the
  parts of the Z/stencil buffer that it needed for calculations;
  but this failed when only part of the buffer was written, because
  the part that was never pulled out was inadvertently cleared.

  Now all the data from the combined Z/stencil buffer is pulled out,
  just so the proper values can be recombined later and written back
  to the buffer correctly.  As a bonus, the fragment op code generation
  is simplified.
2008-11-07 11:29:35 -07:00
Brian Paul 18a4cdcfc0 Merge commit 'origin/gallium-0.1' into gallium-0.2 2008-11-07 10:24:22 -07:00
Brian Paul eb459814b7 mesa: use _bfc0 instead of _col0 when building back face lighting.
cherry-picked from master: 4550b0562d
2008-11-07 10:23:22 -07:00
Brian Paul 8343d0f6e4 gallium: translate DP2, DP2A, NRM3, NRM4, SSG opcodes 2008-11-07 10:20:05 -07:00
Brian Paul 3059ceb7f8 Merge commit 'origin/master' into gallium-0.2 2008-11-07 10:17:31 -07:00
Brian Paul a98a25c25f mesa: add GLSL support for DP2, NRM3, NRM4 instructions (not actually emitted yet though) 2008-11-07 09:51:25 -07:00
Brian Paul 65cb74ecc0 mesa: added DP2, DP2A instructions 2008-11-07 09:51:25 -07:00
Brian Paul 37eef7b474 mesa: added AND/OR/NOT/XOR instructions 2008-11-07 09:51:25 -07:00