Robert Ellison [Thu, 18 Sep 2008 07:29:41 +0000 (01:29 -0600)]
CELL: finish fragment ops blending (except for unusual D3D modes)
- Added new "macro" functions spe_float_min() and spe_float_max()
to rtasm_ppc_spe.{ch}. These emit instructions that cause
the minimum or maximum of each element in a vector of floats
to be saved in the destination register.
- Major changes to cell_gen_fragment.c to implement all the blending
modes (except for the mysterious D3D-based PIPE_BLENDFACTOR_SRC1_COLOR,
PIPE_BLENDFACTOR_SRC1_ALPHA, PIPE_BLENDFACTOR_INV_SRC1_COLOR, and
PIPE_BLENDFACTOR_INV_SRC1_ALPHA).
- Some revamping of code in cell_gen_fragment.c: use the new spe_float_min()
and spe_float_max() functions (instead of expanding these calculations
inline via macros); create and use an inline utility function for handling
"optional" register allocation (for the {1,1,1,1} vector, and the
blend color vectors) instead of expanding with macros; use the Float
Multiply and Subtract (fnms) instruction to simplify and optimize many
blending calculations.
Brian Paul [Wed, 17 Sep 2008 14:17:02 +0000 (08:17 -0600)]
cell: example of doing fs/fm sequence with fnms in blending
Brian Paul [Wed, 17 Sep 2008 14:11:42 +0000 (08:11 -0600)]
cell: dump generated code if CELL_DEBUG=asm
Robert Ellison [Wed, 17 Sep 2008 08:30:20 +0000 (02:30 -0600)]
CELL: fleshing out the blending fragment ops
- Added two new debug flags (to be used with the CELL_DEBUG environment
variable). The first, "CELL_DEBUG=fragops", activates SPE fragment
ops debug messages. The second, "CELL_DEBUG=fragopfallback", will
eventually be used to disable the use of generated SPE code for
fragment ops in favor of the default fallback reference routine.
(During development, though, the parity of this flag is reversed:
all users will get the reference code *unless* CELL_DEBUG=fragopfallback
is set. This will prevent hiccups in code generation from affecting
the other developers.)
- Formalized debug message usage and macros in spu/spu_main.c.
- Added lots of new code to ppu/cell_gen_fragment.c to extend the
number of supported source RGB factors from 4 to 15, and to
complete the list of supported blend equations.
More coming, to complete the source and destination RGB and alpha
factors, and to complete the rest of the fragment operations...
Jonathan White [Tue, 16 Sep 2008 22:00:42 +0000 (16:00 -0600)]
cell: Added RCP and RSQ instruction support.
Jonathan White [Tue, 16 Sep 2008 19:56:56 +0000 (13:56 -0600)]
cell: Added DP3 and DP4 instructions
Michal Krol [Tue, 16 Sep 2008 17:26:28 +0000 (19:26 +0200)]
st: hash-warning not recognised on Windows.
Jonathan White [Tue, 16 Sep 2008 15:42:28 +0000 (09:42 -0600)]
cell: Optimized LERP with fma
Please enter the commit message for your changes.
Jonathan White [Tue, 16 Sep 2008 15:36:38 +0000 (09:36 -0600)]
cell: Fixed MIN/MAX algorithm
Brian Paul [Tue, 16 Sep 2008 01:38:39 +0000 (19:38 -0600)]
cell: export CELL_DEBUG=asm to dump SPU assembly code
Jonathan White [Mon, 15 Sep 2008 21:45:51 +0000 (15:45 -0600)]
cell: Added LERP instruction
Brian Paul [Mon, 15 Sep 2008 21:10:02 +0000 (15:10 -0600)]
gallium: emit SPU instructions in assembler-compatible syntax
Jonathan White [Mon, 15 Sep 2008 19:45:09 +0000 (13:45 -0600)]
cell: Added support for SLT, SEQ and SNE instructions
Jonathan White [Mon, 15 Sep 2008 18:27:10 +0000 (12:27 -0600)]
cell: Added support for ABS instruction
Jonathan White [Mon, 15 Sep 2008 17:56:51 +0000 (11:56 -0600)]
Added support for SUB and MAD instructions
Jonathan White [Mon, 15 Sep 2008 17:56:21 +0000 (11:56 -0600)]
Fixed emit_RRR
Jakob Bornecrantz [Mon, 15 Sep 2008 15:55:09 +0000 (17:55 +0200)]
i915simple: dri winsys does now compile and works
Glxgears hits an assert, but tri works
Michal Krol [Sun, 14 Sep 2008 17:04:53 +0000 (19:04 +0200)]
draw: Silence compiler warnings on Windows.
Brian Paul [Sat, 13 Sep 2008 21:32:46 +0000 (15:32 -0600)]
cell: implement negation, absolute value and set-sign for src regs in code gen
Brian Paul [Sat, 13 Sep 2008 21:31:46 +0000 (15:31 -0600)]
negate.txt - test negation of a src reg
Brian Paul [Sat, 13 Sep 2008 21:21:58 +0000 (15:21 -0600)]
gallium: add another value check to util_fast_pow()
Fixes glitches seen in morph3d demo.
Brian Paul [Sat, 13 Sep 2008 03:54:25 +0000 (21:54 -0600)]
cell: remove old disassembly/dump code; use dumper code in SPE emitter.
Brian Paul [Sat, 13 Sep 2008 03:52:47 +0000 (21:52 -0600)]
gallium: added print/dump code to SPE code emitter
Brian Paul [Sat, 13 Sep 2008 03:09:10 +0000 (21:09 -0600)]
cell: implement DDX/DDY codegen (untested)
Brian Paul [Sat, 13 Sep 2008 03:08:01 +0000 (21:08 -0600)]
gallium: added spe_splat_word()
Brian Paul [Fri, 12 Sep 2008 23:10:20 +0000 (17:10 -0600)]
cell: implement TGSI immediates in SPE code generator
Brian Paul [Fri, 12 Sep 2008 22:31:53 +0000 (16:31 -0600)]
cell: initial support for IF/ELSE/ENDIF in fragment shader codegen
Only one level of if/else/endif nesting is currently working.
Brian Paul [Fri, 12 Sep 2008 22:11:52 +0000 (16:11 -0600)]
cell: evaluate multiple fragment inputs
Brian Paul [Fri, 12 Sep 2008 21:07:04 +0000 (15:07 -0600)]
cell: disable invalid spe_release_func() calls, fixes crash on exit
Jonathan White [Fri, 12 Sep 2008 19:24:05 +0000 (13:24 -0600)]
Makefile was previously checked in with merge diffs still present. I just selected HEAD and removed the old.
Brian Paul [Fri, 12 Sep 2008 18:05:10 +0000 (12:05 -0600)]
mesa: bump gallium version string to 0.2
Brian Paul [Fri, 12 Sep 2008 18:04:49 +0000 (12:04 -0600)]
cell: more documentation updates
Brian Paul [Fri, 12 Sep 2008 17:43:37 +0000 (11:43 -0600)]
cell: implement colormask on fallback path
Also, some var renaming and additional comments
Brian Paul [Fri, 12 Sep 2008 17:42:33 +0000 (11:42 -0600)]
gallium: avoid redundant tgsi_exec_machine_bind_shader() calls on draw exec path
tgsi_exec_machine_bind_shader() isn't cheap so avoiding unecessary calls
is a big win.
A similar change should be done for softpipe's fragment exec path but
extra care needs to be taken with the texture sampler state/params.
Brian Paul [Fri, 12 Sep 2008 17:40:31 +0000 (11:40 -0600)]
gallium: use copy_token() function to avoid type punning/aliasing problems
This fixes parsing errors seen with optimized builds on PPC (which led to crashes).
The memcpy() is heavy-handed, but works. A lighter uint assignment could
be used on x86...
Brian Paul [Fri, 12 Sep 2008 17:35:22 +0000 (11:35 -0600)]
cell: fix twiddled tile display for XSHM. Fixed blank window problem.
Brian Paul [Fri, 12 Sep 2008 17:02:18 +0000 (11:02 -0600)]
gallium: use new compare32() function to fix warnings about type punning and aliasing
Brian Paul [Fri, 12 Sep 2008 17:01:31 +0000 (11:01 -0600)]
gallium: silence warning
Brian Paul [Fri, 12 Sep 2008 15:43:11 +0000 (09:43 -0600)]
cell: fix non-debug build error
Brian Paul [Fri, 12 Sep 2008 14:48:08 +0000 (08:48 -0600)]
cell: implement swizzling for src regs
Brian Paul [Fri, 12 Sep 2008 14:47:45 +0000 (08:47 -0600)]
cell: setup fragment program inputs in SOA format
Also remove old code, etc.
Brian Paul [Fri, 12 Sep 2008 14:40:50 +0000 (08:40 -0600)]
simple add with swizzle and mul with swizzle tests
Brian Paul [Fri, 12 Sep 2008 14:26:47 +0000 (08:26 -0600)]
cell: updated docs/status
Brian Paul [Fri, 12 Sep 2008 14:22:15 +0000 (08:22 -0600)]
gallium: minor optimization to spe_load_int()
Brian Paul [Fri, 12 Sep 2008 14:21:43 +0000 (08:21 -0600)]
gallium: initial PPC/Altivec codegen
Brian Paul [Fri, 12 Sep 2008 13:57:28 +0000 (07:57 -0600)]
cell: update branch info in docs
Brian Paul [Fri, 12 Sep 2008 13:57:08 +0000 (07:57 -0600)]
cell: disable calls to old gen code
Brian Paul [Fri, 12 Sep 2008 13:56:43 +0000 (07:56 -0600)]
gallium: don't build winsys/ here
Jakob Bornecrantz [Fri, 12 Sep 2008 13:09:44 +0000 (15:09 +0200)]
i915simple: A step closer to compiling
Keith Whitwell [Fri, 12 Sep 2008 11:24:21 +0000 (12:24 +0100)]
mesa: build gallium directories before core mesa
Keith Whitwell [Fri, 12 Sep 2008 11:23:28 +0000 (12:23 +0100)]
mesa: regenerate shader files
Keith Whitwell [Fri, 12 Sep 2008 09:31:51 +0000 (10:31 +0100)]
vp: add run script
Keith Whitwell [Fri, 12 Sep 2008 09:31:23 +0000 (10:31 +0100)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
progs/fp/Makefile
Keith Whitwell [Fri, 12 Sep 2008 09:28:36 +0000 (10:28 +0100)]
fp: put test name in window title, add run script
Keith Whitwell [Fri, 12 Sep 2008 09:04:56 +0000 (10:04 +0100)]
mesa: get fixed-function program generation working again
Keith Whitwell [Fri, 12 Sep 2008 09:02:16 +0000 (10:02 +0100)]
use APP_CC, remove redundant target
Brian Paul [Thu, 11 Sep 2008 23:59:52 +0000 (17:59 -0600)]
cell: initial support for fragment shader code generation.
TGSI shaders are translated into SPE instructions which are then sent to
the SPEs for execution. Only a few opcodes work, no swizzling yet, no
support for constants/immediates, etc.
Brian Paul [Thu, 11 Sep 2008 23:55:53 +0000 (17:55 -0600)]
use APP_CC
Brian Paul [Thu, 11 Sep 2008 23:10:10 +0000 (17:10 -0600)]
cell: fix tile twidding bug seen in the event of multiple expose events
Brian Paul [Thu, 11 Sep 2008 23:08:52 +0000 (17:08 -0600)]
cell: minor improvements to fragment code-gen
Brian Paul [Thu, 11 Sep 2008 23:07:30 +0000 (17:07 -0600)]
gallium: add special cases in spe_load_float(), spe_load_int(), added spe_splat()
Brian Paul [Thu, 11 Sep 2008 21:48:13 +0000 (15:48 -0600)]
cell: put cell_ prefix on gen_fragment_function()
Keith Whitwell [Thu, 11 Sep 2008 19:11:11 +0000 (20:11 +0100)]
trivial: remove stray merge conflict
Keith Whitwell [Thu, 11 Sep 2008 19:08:44 +0000 (20:08 +0100)]
st: adapt to new framebuffer struct, with one FIXME outstanding
Keith Whitwell [Thu, 11 Sep 2008 19:08:07 +0000 (20:08 +0100)]
mesa: update PointParameter usage
Keith Whitwell [Thu, 11 Sep 2008 19:07:41 +0000 (20:07 +0100)]
demos: fix LIBS ref in makefile
Brian Paul [Thu, 11 Sep 2008 18:01:19 +0000 (12:01 -0600)]
gallium: typo: s/PIPE_FORMAT_Z16UNORM/PIPE_FORMAT_Z16_UNORM/
Dima Zavin [Thu, 21 Aug 2008 17:41:19 +0000 (10:41 -0700)]
egl_xdri: Add the top-level lib dir so we link against the libGL we built.
Dima Zavin [Thu, 21 Aug 2008 17:40:55 +0000 (10:40 -0700)]
egl_dri/egl_xdri: Makefiles should use pkg-config to find libdrm.
Keith Whitwell [Thu, 11 Sep 2008 17:35:19 +0000 (18:35 +0100)]
xlib: fix typo
Keith Whitwell [Thu, 11 Sep 2008 17:32:05 +0000 (18:32 +0100)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
Makefile
progs/demos/Makefile
progs/glsl/Makefile
progs/redbook/Makefile
progs/samples/Makefile
progs/tests/Makefile
progs/trivial/Makefile
progs/xdemos/Makefile
src/gallium/Makefile
src/mesa/main/attrib.c
src/mesa/main/bufferobj.c
src/mesa/vbo/vbo_exec_draw.c
Keith Whitwell [Thu, 11 Sep 2008 16:39:16 +0000 (17:39 +0100)]
mesa: use sources.mak -- need to figure out how to support non-gallium builds also
Alan Hourihane [Thu, 11 Sep 2008 17:06:05 +0000 (18:06 +0100)]
add gallium dir
winsys/common -> winsys/
Brian Paul [Thu, 11 Sep 2008 17:05:13 +0000 (11:05 -0600)]
glut: only call glFinish() in processWindowWorkList() for indirect contexts.
Basically, do as the comment says.
Brian Paul [Thu, 11 Sep 2008 17:00:54 +0000 (11:00 -0600)]
define new APP_CC configuration variable for building apps/demos/tests
For Cell, need to use different compilers for the libraries vs. the demos/tests
to avoid strange link error regarding "_Unwind_GetIPInfo@GCC_4.2.0"
Alan Hourihane [Thu, 11 Sep 2008 16:59:58 +0000 (17:59 +0100)]
tree builds
Brian Paul [Thu, 11 Sep 2008 16:52:03 +0000 (10:52 -0600)]
cell: more comments, stub code for colormask/logicop/etc
Brian Paul [Thu, 11 Sep 2008 16:43:14 +0000 (10:43 -0600)]
simple quad drawing test
Brian Paul [Thu, 11 Sep 2008 16:38:55 +0000 (10:38 -0600)]
cell: fix typos in blend code-gen
Brian Paul [Thu, 11 Sep 2008 16:38:37 +0000 (10:38 -0600)]
cell: remove old state CMDs, added comments
Brian Paul [Thu, 11 Sep 2008 16:33:24 +0000 (10:33 -0600)]
cell: clean-up, comments
Brian Paul [Thu, 11 Sep 2008 16:33:13 +0000 (10:33 -0600)]
cell: disable NEW_VS emit
Brian Paul [Thu, 11 Sep 2008 16:27:17 +0000 (10:27 -0600)]
cell: don't build unused sources
Brian Paul [Thu, 11 Sep 2008 16:26:00 +0000 (10:26 -0600)]
cell: remove old blend/depth/stencil/logicop structs
Brian Paul [Thu, 11 Sep 2008 16:25:38 +0000 (10:25 -0600)]
cell: asst. clean-up
Brian Paul [Thu, 11 Sep 2008 16:13:20 +0000 (10:13 -0600)]
cell: checkpoint: remove more of the old per-fragment code
Brian Paul [Thu, 11 Sep 2008 16:08:06 +0000 (10:08 -0600)]
cell: begin new blending code (both codegen and fallback paths)
Brian Paul [Thu, 11 Sep 2008 15:55:39 +0000 (09:55 -0600)]
cell: fix shuffle in spu_unpack_B8G8R8A8()
Brian Paul [Thu, 11 Sep 2008 14:44:54 +0000 (08:44 -0600)]
cell: added cast in spu_splats() call
Brian Paul [Thu, 11 Sep 2008 00:51:43 +0000 (18:51 -0600)]
cell: remove old per-fragment code, replace with all new code
Brian Paul [Thu, 11 Sep 2008 00:22:00 +0000 (18:22 -0600)]
cell: checkpoint commit of new per-fragment processing
Do code generation for alpha test, z test, stencil, blend, colormask
and framebuffer/tile read/write as a single code block.
Ian's previous blend/z/stencil test code is still there but mostly disabled
and will be removed soon.
Brian Paul [Wed, 10 Sep 2008 23:11:48 +0000 (17:11 -0600)]
gallium: assorted additions and fixes to Cell SPE rtasm code
Fix incorrect opcode for fsmbi.
Added "macro" functions for loading floats/ints, register complement, zero, move.
Added #defines for return address and stack pointer registers.
Added assertions to check that the instruction buffer doesn't overflow.
Brian Paul [Mon, 8 Sep 2008 17:53:14 +0000 (11:53 -0600)]
cell: minor change to Z float/int conversion code (avoid switch)
Brian Paul [Mon, 8 Sep 2008 17:50:13 +0000 (11:50 -0600)]
cell: comments
Brian Paul [Fri, 5 Sep 2008 19:55:02 +0000 (13:55 -0600)]
cell: comments, etc.
Brian Paul [Fri, 5 Sep 2008 19:54:14 +0000 (13:54 -0600)]
gallium: comments, assertions, etc
Brian Paul [Fri, 5 Sep 2008 19:07:43 +0000 (13:07 -0600)]
press 'c' to toggle Z clear value between 0/1
Brian Paul [Fri, 5 Sep 2008 18:59:40 +0000 (12:59 -0600)]
press 'f' to cycle through depth test funcs
Alan Hourihane [Thu, 11 Sep 2008 16:32:18 +0000 (17:32 +0100)]
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/mesa into gallium-0.2
Conflicts:
src/mesa/drivers/dri/i915/intel_ioctl.c
src/mesa/main/texstore.c
src/mesa/tnl/t_vp_build.c
src/mesa/vbo/vbo_exec_draw.c
Keith Whitwell [Thu, 11 Sep 2008 15:36:41 +0000 (16:36 +0100)]
mesa: fix srcRowStride vs srcRowBytes conflict