mesa.git
16 years agoCELL: finish fragment ops blending (except for unusual D3D modes)
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.

16 years agocell: example of doing fs/fm sequence with fnms in blending
Brian Paul [Wed, 17 Sep 2008 14:17:02 +0000 (08:17 -0600)]
cell: example of doing fs/fm sequence with fnms in blending

16 years agocell: dump generated code if CELL_DEBUG=asm
Brian Paul [Wed, 17 Sep 2008 14:11:42 +0000 (08:11 -0600)]
cell: dump generated code if CELL_DEBUG=asm

16 years agoCELL: fleshing out the blending fragment ops
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...

16 years agocell: Added RCP and RSQ instruction support.
Jonathan White [Tue, 16 Sep 2008 22:00:42 +0000 (16:00 -0600)]
cell: Added RCP and RSQ instruction support.

16 years agocell: Added DP3 and DP4 instructions
Jonathan White [Tue, 16 Sep 2008 19:56:56 +0000 (13:56 -0600)]
cell: Added DP3 and DP4 instructions

16 years agost: hash-warning not recognised on Windows.
Michal Krol [Tue, 16 Sep 2008 17:26:28 +0000 (19:26 +0200)]
st: hash-warning not recognised on Windows.

16 years agocell: Optimized LERP with fma
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.

16 years agocell: Fixed MIN/MAX algorithm
Jonathan White [Tue, 16 Sep 2008 15:36:38 +0000 (09:36 -0600)]
cell: Fixed MIN/MAX algorithm

16 years agocell: export CELL_DEBUG=asm to dump SPU assembly code
Brian Paul [Tue, 16 Sep 2008 01:38:39 +0000 (19:38 -0600)]
cell: export CELL_DEBUG=asm to dump SPU assembly code

16 years agocell: Added LERP instruction
Jonathan White [Mon, 15 Sep 2008 21:45:51 +0000 (15:45 -0600)]
cell: Added LERP instruction

16 years agogallium: emit SPU instructions in assembler-compatible syntax
Brian Paul [Mon, 15 Sep 2008 21:10:02 +0000 (15:10 -0600)]
gallium: emit SPU instructions in assembler-compatible syntax

16 years agocell: Added support for SLT, SEQ and SNE instructions
Jonathan White [Mon, 15 Sep 2008 19:45:09 +0000 (13:45 -0600)]
cell: Added support for SLT, SEQ and SNE instructions

16 years agocell: Added support for ABS instruction
Jonathan White [Mon, 15 Sep 2008 18:27:10 +0000 (12:27 -0600)]
cell: Added support for ABS instruction

16 years agoAdded support for SUB and MAD instructions
Jonathan White [Mon, 15 Sep 2008 17:56:51 +0000 (11:56 -0600)]
Added support for SUB and MAD instructions

16 years agoFixed emit_RRR
Jonathan White [Mon, 15 Sep 2008 17:56:21 +0000 (11:56 -0600)]
Fixed emit_RRR

16 years agoi915simple: dri winsys does now compile and works
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

16 years agodraw: Silence compiler warnings on Windows.
Michal Krol [Sun, 14 Sep 2008 17:04:53 +0000 (19:04 +0200)]
draw: Silence compiler warnings on Windows.

16 years agocell: implement negation, absolute value and set-sign for src regs in code gen
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

16 years agonegate.txt - test negation of a src reg
Brian Paul [Sat, 13 Sep 2008 21:31:46 +0000 (15:31 -0600)]
negate.txt - test negation of a src reg

16 years agogallium: add another value check to util_fast_pow()
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.

16 years agocell: remove old disassembly/dump code; use dumper code in SPE emitter.
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.

16 years agogallium: added print/dump code to SPE code emitter
Brian Paul [Sat, 13 Sep 2008 03:52:47 +0000 (21:52 -0600)]
gallium: added print/dump code to SPE code emitter

16 years agocell: implement DDX/DDY codegen (untested)
Brian Paul [Sat, 13 Sep 2008 03:09:10 +0000 (21:09 -0600)]
cell: implement DDX/DDY codegen (untested)

16 years agogallium: added spe_splat_word()
Brian Paul [Sat, 13 Sep 2008 03:08:01 +0000 (21:08 -0600)]
gallium: added spe_splat_word()

16 years agocell: implement TGSI immediates in SPE code generator
Brian Paul [Fri, 12 Sep 2008 23:10:20 +0000 (17:10 -0600)]
cell: implement TGSI immediates in SPE code generator

16 years agocell: initial support for IF/ELSE/ENDIF in fragment shader codegen
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.

16 years agocell: evaluate multiple fragment inputs
Brian Paul [Fri, 12 Sep 2008 22:11:52 +0000 (16:11 -0600)]
cell: evaluate multiple fragment inputs

16 years agocell: disable invalid spe_release_func() calls, fixes crash on exit
Brian Paul [Fri, 12 Sep 2008 21:07:04 +0000 (15:07 -0600)]
cell: disable invalid spe_release_func() calls, fixes crash on exit

16 years agoMakefile was previously checked in with merge diffs still present. I just selected...
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.

16 years agomesa: bump gallium version string to 0.2
Brian Paul [Fri, 12 Sep 2008 18:05:10 +0000 (12:05 -0600)]
mesa: bump gallium version string to 0.2

16 years agocell: more documentation updates
Brian Paul [Fri, 12 Sep 2008 18:04:49 +0000 (12:04 -0600)]
cell: more documentation updates

16 years agocell: implement colormask on fallback path
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

16 years agogallium: avoid redundant tgsi_exec_machine_bind_shader() calls on draw exec path
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.

16 years agogallium: use copy_token() function to avoid type punning/aliasing problems
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...

16 years agocell: fix twiddled tile display for XSHM. Fixed blank window problem.
Brian Paul [Fri, 12 Sep 2008 17:35:22 +0000 (11:35 -0600)]
cell: fix twiddled tile display for XSHM.  Fixed blank window problem.

16 years agogallium: use new compare32() function to fix warnings about type punning and aliasing
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

16 years agogallium: silence warning
Brian Paul [Fri, 12 Sep 2008 17:01:31 +0000 (11:01 -0600)]
gallium: silence warning

16 years agocell: fix non-debug build error
Brian Paul [Fri, 12 Sep 2008 15:43:11 +0000 (09:43 -0600)]
cell: fix non-debug build error

16 years agocell: implement swizzling for src regs
Brian Paul [Fri, 12 Sep 2008 14:48:08 +0000 (08:48 -0600)]
cell: implement swizzling for src regs

16 years agocell: setup fragment program inputs in SOA format
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.

16 years agosimple add with swizzle and mul with swizzle tests
Brian Paul [Fri, 12 Sep 2008 14:40:50 +0000 (08:40 -0600)]
simple add with swizzle and mul with swizzle tests

16 years agocell: updated docs/status
Brian Paul [Fri, 12 Sep 2008 14:26:47 +0000 (08:26 -0600)]
cell: updated docs/status

16 years agogallium: minor optimization to spe_load_int()
Brian Paul [Fri, 12 Sep 2008 14:22:15 +0000 (08:22 -0600)]
gallium: minor optimization to spe_load_int()

16 years agogallium: initial PPC/Altivec codegen
Brian Paul [Fri, 12 Sep 2008 14:21:43 +0000 (08:21 -0600)]
gallium: initial PPC/Altivec codegen

16 years agocell: update branch info in docs
Brian Paul [Fri, 12 Sep 2008 13:57:28 +0000 (07:57 -0600)]
cell: update branch info in docs

16 years agocell: disable calls to old gen code
Brian Paul [Fri, 12 Sep 2008 13:57:08 +0000 (07:57 -0600)]
cell: disable calls to old gen code

16 years agogallium: don't build winsys/ here
Brian Paul [Fri, 12 Sep 2008 13:56:43 +0000 (07:56 -0600)]
gallium: don't build winsys/ here

16 years agoi915simple: A step closer to compiling
Jakob Bornecrantz [Fri, 12 Sep 2008 13:09:44 +0000 (15:09 +0200)]
i915simple: A step closer to compiling

16 years agomesa: build gallium directories before core mesa
Keith Whitwell [Fri, 12 Sep 2008 11:24:21 +0000 (12:24 +0100)]
mesa: build gallium directories before core mesa

16 years agomesa: regenerate shader files
Keith Whitwell [Fri, 12 Sep 2008 11:23:28 +0000 (12:23 +0100)]
mesa: regenerate shader files

16 years agovp: add run script
Keith Whitwell [Fri, 12 Sep 2008 09:31:51 +0000 (10:31 +0100)]
vp: add run script

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
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

16 years agofp: put test name in window title, add run script
Keith Whitwell [Fri, 12 Sep 2008 09:28:36 +0000 (10:28 +0100)]
fp: put test name in window title, add run script

16 years agomesa: get fixed-function program generation working again
Keith Whitwell [Fri, 12 Sep 2008 09:04:56 +0000 (10:04 +0100)]
mesa: get fixed-function program generation working again

16 years agouse APP_CC, remove redundant target
Keith Whitwell [Fri, 12 Sep 2008 09:02:16 +0000 (10:02 +0100)]
use APP_CC, remove redundant target

16 years agocell: initial support for fragment shader code generation.
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.

16 years agouse APP_CC
Brian Paul [Thu, 11 Sep 2008 23:55:53 +0000 (17:55 -0600)]
use APP_CC

16 years agocell: fix tile twidding bug seen in the event of multiple expose events
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

16 years agocell: minor improvements to fragment code-gen
Brian Paul [Thu, 11 Sep 2008 23:08:52 +0000 (17:08 -0600)]
cell: minor improvements to fragment code-gen

16 years agogallium: add special cases in spe_load_float(), spe_load_int(), added spe_splat()
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()

16 years agocell: put cell_ prefix on gen_fragment_function()
Brian Paul [Thu, 11 Sep 2008 21:48:13 +0000 (15:48 -0600)]
cell: put cell_ prefix on gen_fragment_function()

16 years agotrivial: remove stray merge conflict
Keith Whitwell [Thu, 11 Sep 2008 19:11:11 +0000 (20:11 +0100)]
trivial: remove stray merge conflict

16 years agost: adapt to new framebuffer struct, with one FIXME outstanding
Keith Whitwell [Thu, 11 Sep 2008 19:08:44 +0000 (20:08 +0100)]
st: adapt to new framebuffer struct, with one FIXME outstanding

16 years agomesa: update PointParameter usage
Keith Whitwell [Thu, 11 Sep 2008 19:08:07 +0000 (20:08 +0100)]
mesa: update PointParameter usage

16 years agodemos: fix LIBS ref in makefile
Keith Whitwell [Thu, 11 Sep 2008 19:07:41 +0000 (20:07 +0100)]
demos: fix LIBS ref in makefile

16 years agogallium: typo: s/PIPE_FORMAT_Z16UNORM/PIPE_FORMAT_Z16_UNORM/
Brian Paul [Thu, 11 Sep 2008 18:01:19 +0000 (12:01 -0600)]
gallium: typo: s/PIPE_FORMAT_Z16UNORM/PIPE_FORMAT_Z16_UNORM/

16 years agoegl_xdri: Add the top-level lib dir so we link against the libGL we built.
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.

16 years agoegl_dri/egl_xdri: Makefiles should use pkg-config to find libdrm.
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.

16 years agoxlib: fix typo
Keith Whitwell [Thu, 11 Sep 2008 17:35:19 +0000 (18:35 +0100)]
xlib: fix typo

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
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

16 years agomesa: use sources.mak -- need to figure out how to support non-gallium builds also
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

16 years agoadd gallium dir
Alan Hourihane [Thu, 11 Sep 2008 17:06:05 +0000 (18:06 +0100)]
add gallium dir
winsys/common -> winsys/

16 years agoglut: only call glFinish() in processWindowWorkList() for indirect contexts.
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.

16 years agodefine new APP_CC configuration variable for building apps/demos/tests
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"

16 years agotree builds
Alan Hourihane [Thu, 11 Sep 2008 16:59:58 +0000 (17:59 +0100)]
tree builds

16 years agocell: more comments, stub code for colormask/logicop/etc
Brian Paul [Thu, 11 Sep 2008 16:52:03 +0000 (10:52 -0600)]
cell: more comments, stub code for colormask/logicop/etc

16 years agosimple quad drawing test
Brian Paul [Thu, 11 Sep 2008 16:43:14 +0000 (10:43 -0600)]
simple quad drawing test

16 years agocell: fix typos in blend code-gen
Brian Paul [Thu, 11 Sep 2008 16:38:55 +0000 (10:38 -0600)]
cell: fix typos in blend code-gen

16 years agocell: remove old state CMDs, added comments
Brian Paul [Thu, 11 Sep 2008 16:38:37 +0000 (10:38 -0600)]
cell: remove old state CMDs, added comments

16 years agocell: clean-up, comments
Brian Paul [Thu, 11 Sep 2008 16:33:24 +0000 (10:33 -0600)]
cell: clean-up, comments

16 years agocell: disable NEW_VS emit
Brian Paul [Thu, 11 Sep 2008 16:33:13 +0000 (10:33 -0600)]
cell: disable NEW_VS emit

16 years agocell: don't build unused sources
Brian Paul [Thu, 11 Sep 2008 16:27:17 +0000 (10:27 -0600)]
cell: don't build unused sources

16 years agocell: remove old blend/depth/stencil/logicop structs
Brian Paul [Thu, 11 Sep 2008 16:26:00 +0000 (10:26 -0600)]
cell: remove old blend/depth/stencil/logicop structs

16 years agocell: asst. clean-up
Brian Paul [Thu, 11 Sep 2008 16:25:38 +0000 (10:25 -0600)]
cell: asst. clean-up

16 years agocell: checkpoint: remove more of the old per-fragment code
Brian Paul [Thu, 11 Sep 2008 16:13:20 +0000 (10:13 -0600)]
cell: checkpoint: remove more of the old per-fragment code

16 years agocell: begin new blending code (both codegen and fallback paths)
Brian Paul [Thu, 11 Sep 2008 16:08:06 +0000 (10:08 -0600)]
cell: begin new blending code (both codegen and fallback paths)

16 years agocell: fix shuffle in spu_unpack_B8G8R8A8()
Brian Paul [Thu, 11 Sep 2008 15:55:39 +0000 (09:55 -0600)]
cell: fix shuffle in spu_unpack_B8G8R8A8()

16 years agocell: added cast in spu_splats() call
Brian Paul [Thu, 11 Sep 2008 14:44:54 +0000 (08:44 -0600)]
cell: added cast in spu_splats() call

16 years agocell: remove old per-fragment code, replace with all new code
Brian Paul [Thu, 11 Sep 2008 00:51:43 +0000 (18:51 -0600)]
cell: remove old per-fragment code, replace with all new code

16 years agocell: checkpoint commit of new per-fragment processing
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.

16 years agogallium: assorted additions and fixes to Cell SPE rtasm code
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.

16 years agocell: minor change to Z float/int conversion code (avoid switch)
Brian Paul [Mon, 8 Sep 2008 17:53:14 +0000 (11:53 -0600)]
cell: minor change to Z float/int conversion code (avoid switch)

16 years agocell: comments
Brian Paul [Mon, 8 Sep 2008 17:50:13 +0000 (11:50 -0600)]
cell: comments

16 years agocell: comments, etc.
Brian Paul [Fri, 5 Sep 2008 19:55:02 +0000 (13:55 -0600)]
cell: comments, etc.

16 years agogallium: comments, assertions, etc
Brian Paul [Fri, 5 Sep 2008 19:54:14 +0000 (13:54 -0600)]
gallium: comments, assertions, etc

16 years agopress 'c' to toggle Z clear value between 0/1
Brian Paul [Fri, 5 Sep 2008 19:07:43 +0000 (13:07 -0600)]
press 'c' to toggle Z clear value between 0/1

16 years agopress 'f' to cycle through depth test funcs
Brian Paul [Fri, 5 Sep 2008 18:59:40 +0000 (12:59 -0600)]
press 'f' to cycle through depth test funcs

16 years agoMerge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/mesa into gallium-0.2
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

16 years agomesa: fix srcRowStride vs srcRowBytes conflict
Keith Whitwell [Thu, 11 Sep 2008 15:36:41 +0000 (16:36 +0100)]
mesa: fix srcRowStride vs srcRowBytes conflict