Commit Graph

10 Commits

Author SHA1 Message Date
Helvetix Victorinox bac9cfa083 a regression test now iterates over 8388625 pixels per pass.
* app/composite/gimp-composite-*test.c: a regression test now
	iterates over 8388625 pixels per pass.

* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse2.c:
	Ensured that a clobbered condition code register is reflected in
	the clobbered register list for each asm() statement.
	This should FIX bug #147013.
2004-09-03 02:53:19 +00:00
Helvetix Victorinox 47b1730948 We've had trouble compiling with the Intel compiler which
identifies itself as GCC, but doesn't support the same extended
assembly features/misfeatures as GCC.  With the help of the Intel
compiler group, we've determined that the Intel compiler can be
identified at compile time by the definition of the preprocessor
variable __INTEL_COMPILER.

These changes make all of the assembly code currently written to
simply avoid the Intel compiler.

This is an interim solution to get a build working despite the
Intel compiler.  A more correct solution has been identified, see
the discussion of bug #147013 for more information.
2004-07-17 05:24:08 +00:00
Helvetix Victorinox 7b7b3c3f0c app/composite/gimp-composite.h app/composite/gimp-composite-generic.h
*	app/composite/gimp-composite.h
* app/composite/gimp-composite-generic.h
* app/composite/gimp-composite-regression.h: Reformatted to include
  argument names in function prototypes.

* app/composite/gimp-composite.c
* app/composite/gimp-composite-generic.c
* app/composite/gimp-composite-regression.c: Added gtk-doc templates for functions.

* app/composite/make-install.py: migrated to new (trimmer) code and
  removed dead code.  Some beautification for generated code.

* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis,generic}.{c,h}:
  All init() functions are also a run-time check and now expected to
  return TRUE/FALSE if the particular set of compositing functions can
  be used.

* app/composite/gimp-composite.c: No longer has to determine if
  the particular set of compositing functions can be used.

* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-{install,test}.c:
  Regenerated

* app/composite/test-composite.c: Deprecated, removed.  All tests are automatically
  generated and the code is in app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-test.c:

* app/composite/Makefile.am: removed unused references to test-composite.c
2003-10-12 00:10:21 +00:00
Helvetix Victorinox 7752bf9eef migrated to new (trimmer) code and removed dead code. Some beautification
* app/composite/make-install.py: migrated to new (trimmer) code and
  removed dead code.  Some beautification for generated code.

* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis,generic}.{c,h}:
  All init() functions are also a run-time check and now expected to
  return TRUE/FALSE if the particular set of compositing functions can
  be used.

* app/composite/gimp-composite.c: No longer has to determine if
  the particular set of compositing functions can be used.

* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-{install,test}.c:
  Regenerated

* app/composite/test-composite.c: Deprecated, removed.  All tests are automatically
  generated and the code is in app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-test.c:

* app/composite/Makefile.am: removed unused references to test-composite.c
2003-10-06 02:46:15 +00:00
Helvetix Victorinox 545c19854a app/composite/gimp-composite-altivec-test.c
* app/composite/gimp-composite-altivec-test.c
* app/composite/gimp-composite-mmx-test.c
* app/composite/gimp-composite-mmx-installer.c
* app/composite/gimp-composite-sse-test.c
* app/composite/gimp-composite-sse-installer.c
* app/composite/gimp-composite-sse2-test.c
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-vis-test.c
* app/composite/gimp-composite-vis-installer.c:
  Regenerated.

* app/composite/gimp-composite-altivec.[ch]
* app/composite/gimp-composite-mmx.[ch]
* app/composite/gimp-composite-sse.[ch]
* app/composite/gimp-composite-sse2.[ch]
* app/composite/gimp-composite-vis.[ch]
* app/composite/make-installer.py:
  Make it such that when a test is run on the wrong kind of
  machine, don't fail without an explanation.
2003-09-27 03:11:46 +00:00
Helvetix Victorinox 4cae0f19ce Various beautifications, dead code removal, comment clean-up.
* app/composite:
  Various beautifications, dead code removal, comment clean-up.
2003-08-18 15:05:22 +00:00
Helvetix Victorinox 33e22c8fbc composite/ modularisation of the automatic compositing function "wiring"
* composite/ modularisation of the automatic compositing function
  "wiring" to construct the table of compositing functions at
  run-time instead of compile time.

  The environment variable GIMP_COMPOSITE is a hexadecimal number
  representing a bit-field used to set/reset options in the
  gimp-composite code.

* gimp-composite-altivec.[ch]: added
* gimp-composite-altivec-installer.[ch]: added
* gimp-composite-vis.[ch]: added
* gimp-composite-vis-installer.[ch]: added
* gimp-composite-mmx-installer.[ch]: added
* gimp-composite-sse-installer.[ch]: added
* gimp-composite-altivec-test.[ch]: added
* gimp-composite-vis-test.[ch]: added
* gimp-composite-mmx-test.[ch]: added
* gimp-composite-sse-test.[ch]: added
* make-installer.py: Added meta programme for generating code to
  1) construct a table of compositing functions indexed by
  operation, and the pixel formats of the sources and destination,
  and 2) generating code for regression testing of these compositing
  functions against the same functions in gimp-composite-generic.c

* gimp-composite-mmx.c (xxxgimp_composite_overlay_rgba8_rgba8_rgba8_mmx):
  removing from the current set of optimisations because it appears
  to be broken.

* Makefile.am: modified regression testing targets to now build
  gimp-composite-*-test where * is any of generic, mmx, sse,
  altivec, and vis.

* gimp-composite.c: moved in initialisation code
  gimp_composite_init() from gimp-composite-dispatch.c

* gimp-composite.c: removed gimp_composite_unsupported().

* gimp-composite.c: use cpu_accel() to determine at run-time which
  set of optimisations are to be used.

* gimp-composite.c: conditionally compile code for ARCH_X86.

* make-gimp-composite-dispatch.c: retired.  See make-installer.py

* gimp-composite-mmx.c (op_overlay): namespace cleanup, op_overlay()
  and all of the constant values are now static

* gimp-composite-mmx.c, gimp-composite-sse.c: fixed bug with the
  alpha mask being the address of the alpha mask, not the mask
  itself.

* app/paint-funcs/paint-funcs.c: Check gimp_composite_options.use
  to see if we should use the new code or the old code.
2003-08-14 07:43:34 +00:00
Helvetix Victorinox 0aad627dbe Made the explicit target "regenerate" to regenerate the source files using
* app/composite/Makefile.am:
Made the explicit target "regenerate" to regenerate the source
files using the Python meta-generator.

* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-mmx.h
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse.h:
Now bounded by the conditional "#if __GNUC__ >= 3".  This is a
coarse fix to enable app/composite to build on a wider variety of
platforms.  Ideally, this will be refined to encompass different
versions of the compiler(s) supporting inline assembly code.
2003-07-29 02:54:09 +00:00
Helvetix Victorinox d3fc41f0c2 regenerated new code taking advantage of simplified function prototypes.
* app/composite/gimp-composite-dispatch.[ch]: regenerated new code
taking advantage of simplified function prototypes.

* app/composite/gimp-composite-test.c: New regression testing
driver.  This file is automatically generated, but it's included
in the cvs tree for expediency.

* app/composite/ns.py: hopeful checks for which OS is currently
running as a hint to what nm(1) is available.

* app/composite/gimp-composite-mmx.[ch]
* app/composite/gimp-composite-sse.[ch]
* app/composite/gimp-composite-generic.[ch]: function prototype
cleanup.

* app/composite/make-gimp-composite-dispatch.py: generates code to
test compositing functions.

* app/composite/gimp-composite-regression.[ch]: support for
automatically testing compositing functions.
2003-07-24 08:00:12 +00:00
Helvetix Victorinox 9e3bd94760 app/composite/gimp-composite.[ch],
* app/composite/gimp-composite.[ch],
* app/composite/make-gimp-composite-dispatch.py
stubbed out the 32bit-per-channel pixel formats.

* app/composite/gimp-composite-sse.[ch],
* app/composite/Makefile.am
Broke-out and added the SSE versions of the MMX code.

* app/composite/gimp-composite.[ch],
* app/paint-funcs/paint-funcs.c,
* app/composite/make-gimp-composite-dispatch.py
Use of the new gimp_composite code is now turned on via the
environment variable GIMP_COMPOSITE with a non-zero value.  For
example:
% GIMP_COMPOSITE=1 gimp-1.3
2003-07-18 07:36:55 +00:00