summaryrefslogtreecommitdiff
path: root/src/gallium
AgeCommit message (Collapse)Author
2008-11-15Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell
Conflicts: src/mesa/drivers/dri/common/dri_util.c
2008-11-15i915: Silence warningJakob Bornecrantz
2008-11-14gallium: increase table size for fast log/pow functionsBrian Paul
The various conformance tests pass now.
2008-11-14util: Use OpenGL rasterization rules in blits and mipmap generation.Brian Paul
2008-11-14translate: pull in prefetch and other optimizations from draw_vs_aos.cKeith Whitwell
2008-11-13CELL: fix stencil twiddling, stencil invertRobert Ellison
Many stencil tests were failing because of a failure to read the stencil buffer, due to "twiddling" (or "untwiddling") "an unsupported texture format". This is fixed for the case of a stencil/Z S824Z format (which twiddles just like the 32-bit color formats). tests/stencilwrap.c was failing on the GL_INVERT test, because the emitted code for "spe_xori" turned out not to be an actual "xori" instruction, but rather a "stqd" instruction, because of a typo in the rtasm code. This is now fixed, and tests/stencil_wrap now works.
2008-11-13Merge branch 'gallium-0.2' of ↵Stephane Marchesin
git+ssh://marcheu@git.freedesktop.org/git/nouveau/mesa into gallium-0.2
2008-11-12tgsi: More comments on source register indirect and 2D indexing.Michal Krol
2008-11-12nv04..nv30: fix pipe_surface initPekka Paalanen
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-12Merge commit 'origin/gallium-0.1' into gallium-0.2Pekka Paalanen
* commit 'origin/gallium-0.1': Mesa: fix number of buffers in st_draw_vbo(). Nouveau: fix nv20_vertex_layout() Nouveau: update nv20 miptree according to nv40. Nouveau: build, link and use nv20. Nouveau: name replace for nv20. Nouveau: Rename nv20/ files as nv20. Nouveau: copy nv30_vertprog.c to nv20. Nouveau: start nv20 by copying the nv10 tree.
2008-11-12CELL: fix stencil test bugsRobert Ellison
Fixed a boneheaded error in the generation of SPU code that calculates the results of the stencil test. Basically, all the greater than/less than calculations were exactly inverted: they were coded as though the given comparison took the stencil value as a left-hand operand and the reference value as a right-hand operand, but the actual semantics always put the reference as the left-hand operand and the stencil as the right-hand operand. With this fix, tests/dinoshade runs, as do all the other Mesa tests and samples that use stencil (and that don't use texture formats unsupported by Cell).
2008-11-12gallium: add missing prototypesBrian Paul
2008-11-12cell: move semicolons to silence warnings w/ other compilersBrian Paul
2008-11-12cell: include cell_surface.hBrian Paul
2008-11-12cell: fix typo in EMIT_ macroBrian Paul
2008-11-12cell: include cell_pipe_state.hBrian Paul
2008-11-12util: Optimise log2().Michal Krol
2008-11-12util: Optimise log2().Michal Krol
2008-11-12rtasm: Use INLINE keyword. Compile for all platforms, not only GALLIUM_CELL.Michal Krol
2008-11-12util: Add log2() definition for MSC.Michal Krol
2008-11-12tgsi: Fix a bug with saving/restoring xmm registers upon func call.Michal Krol
2008-11-12rtasm: Compile only for GALLIUM_CELL.Michal Krol
2008-11-12draw: Add missing include.Michal Krol
2008-11-12util: Add log2() definition for MSC.Michal Krol
2008-11-12draw: Add missing include.Michal Krol
2008-11-11cell: implement NRM3 opcodeBrian Paul
2008-11-11CELL: two-sided stencil fixesRobert Ellison
With these changes, the tests/stencil_twoside test now works. - Eliminate blending from the stencil_twoside test, as it produces an unneeded dependency on having blending working - The spe_splat() function will now work if the register being splatted and the destination register are the same - Separate fragment code generated for front-facing and back-facing fragments. Often these are the same; if two-sided stenciling is on, they can be different. This is easier and faster than generating code that does both tests and merges the results. - Fixed a cut/paste bug where if the back Z-pass stencil operation were different from all the other operations, the back Z-fail results were incorrect.
2008-11-10gallium: fix comment again. A half-closed interval was intended.Brian
Never saw the [a,b[ notation before.
2008-11-10Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul
Conflicts: src/gallium/auxiliary/util/u_math.c
2008-11-10gallium: fix typos in commentsBrian Paul
2008-11-10gallium: actually flip the coordinatesZack Rusin
2008-11-10nouveau: remove previous hack around x86_64 breakageBen Skeggs
This hack now causes breakage *doh*. :)
2008-11-10nv40: init pipe_surface correctlyBen Skeggs
2008-11-10nouveau: pass object handle not pointer to GPU...Ben Skeggs
2008-11-10Merge remote branch 'origin/gallium-0.2' into gallium-0.2Ben Skeggs
2008-11-09util: Fix util_fast_pow/exp2/log2.Brian
- 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: 8415d06d90a197e16554dab98d160334fd9f9f93 This fixes some pow() glitches seen in fslight.c, spectex.c, etc. Conflicts: src/gallium/auxiliary/util/u_math.h
2008-11-09gallium: _debug_vprintf() should be silent if DEBUG is not definedBrian
2008-11-09gallium: use PIPE_ARCH_SSE to protect use of SSE instrinsics onlyBrian
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-09Nouveau: fix nv20_vertex_layout()Pekka Paalanen
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-08gallium: implement SSE codegen for TGSI_OPCODE_NRM/NRM4Brian
2008-11-08Nouveau: update nv20 miptree according to nv40.Pekka Paalanen
glxinfo doesn't degfault anymore. Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08Nouveau: build, link and use nv20.Pekka Paalanen
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08Nouveau: name replace for nv20.Pekka Paalanen
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-08Nouveau: Rename nv20/ files as nv20.Pekka Paalanen
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08Nouveau: copy nv30_vertprog.c to nv20.Pekka Paalanen
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-08Nouveau: start nv20 by copying the nv10 tree.Pekka Paalanen
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2008-11-07gallium: added SSE for DP2, DP2ABrian Paul
2008-11-07gallium: implement TGSI_OPCODE_DP2A, add sqrt to NRM3/NRM4Brian Paul
2008-11-07CELL: fix several stencil problemsRobert Ellison
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-07Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul