Commit Graph

18 Commits

Author SHA1 Message Date
Helvetix Victorinox e6d4e36906 Applied patch from starox-gimp@starox.org (Frederic Leroy) which fixed the
* app/composite/make-installer.py:Applied patch from
starox-gimp@starox.org (Frederic Leroy) which fixed the parser of
the nm programme output to understand the output on 64bit
machines.  Fixes bug #168529

* app/composite/ns.py:
Applied patch from starox-gimp@starox.org (Frederic Leroy) which
fixed a bug that would appear when only one compositing function
was implemented.  Fixes bug #168529

										Regenerated app/composite function tables.
2005-03-04 07:39:47 +00:00
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 072bd88d4f Regression tests now include printing the image type for each test.
* Added gimp_composite_addition_va8_va8_va8_mmx():
* Regression tests now include printing the image type for each test.
* Regenerated
2004-09-02 02:46:31 +00:00
Helvetix Victorinox 54630be219 Print the list of active instruction sets if the --verbose command line
* app/composite/gimp-composite.c (gimp_composite_init): Print the
list of active instruction sets if the --verbose command line
switch is ON (via be_verbose)

* app/composite/gimp-composite-x86.h: Factored code from the mmx,
and sse implementations.

* app/composite/make-installer.py: Raised the number of test
iterations from 1 to 10.

* app/composite/gimp-composite-3dnow.[ch]
* app/composite/gimp-composite-3dnow-test.c
* app/composite/gimp-composite-3dnow-installer.c
* app/composite/gimp-composite-altivec.[ch]
* app/composite/gimp-composite-altivec-test.c
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-mmx.[ch]
* app/composite/gimp-composite-altivec-test.c
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-sse.[ch]
* app/composite/gimp-composite-sse-test.c
* app/composite/gimp-composite-sse-installer.c
* app/composite/gimp-composite-sse2.[ch]
* app/composite/gimp-composite-sse2-test.c
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-vis.[ch]
* app/composite/gimp-composite-vis-test.c:
Regenerated sources via make-installer.py
2004-07-20 15:59:12 +00:00
Helvetix Victorinox 78215a79ff Added functions to print the pixels in their various formats.
* app/composite/gimp-composite-regression.c: Added functions to
  print the pixels in their various formats.

* app/composite/gimp-composite-{mmx,sse,sse2}.c: Removed the dodge
  optimisation because it has the same problem that the divide
  optimisation has.

* app/composite/make-install.py: When generating tests, use a
  pixel field of random values.
2003-10-25 06:39:00 +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
Sven Neumann 06a21943d0 improved readability of this code by introducing a local GimpImage*
2003-09-27  Sven Neumann  <sven@gimp.org>

	* app/gui/info-window.c (info_window_update): improved readability
	of this code by introducing a local GimpImage* variable.

	* app/composite/gimp-composite-regression.c: use a matching format
	string for an u_long variable (should probably use gulong instead).

	* app/composite/make-installer.py: output a short note about what
	tests are going to be run.

	* app/composite/gimp-composite-3dnow-test.c
	* app/composite/gimp-composite-altivec-test.c
	* app/composite/gimp-composite-mmx-test.c
	* app/composite/gimp-composite-sse-test.c
	* app/composite/gimp-composite-sse2-test.c
	* app/composite/gimp-composite-vis-test.c: regenerated.
2003-09-27 12:59:22 +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 9c64fde3d1 Regenerated.
* app/composite/gimp-composite-{mmx,sse,sse2,altivec,vis}.c: Regenerated.

* app/composite/gimp-composite-regression.[ch]: Ensure all ints
  are now unsigned longs.

* app/composite/gimp-composite-sse2.c (gimp_composite_addition_rgba8_rgba8_rgba8_sse2):
  Enclosed the troublesome (rather dense) asm construct in
  __OPTIMIZE__ in which case the compiler can successfully
  allocate enough registers to load up the asm()
2003-09-17 05:43:28 +00:00
Helvetix Victorinox 930d261569 gimp-composite-mmx-{test,installer}.c
* gimp-composite-mmx-{test,installer}.c

* gimp-composite-sse-{test,installer}.c

* gimp-composite-sse2-{test,installer}.c

* make-installer.py: sort test output by mode name

* gimp-composite-sse2.[ch]: New compositing mode implementations
  darken
  difference
  grain_extract
  lighten

* gimp-composite-x86.h: added

* gimp-composite-{sse,mmx,sse2}.[ch]: Tightening declarations of clobbered registers.
2003-09-16 02:24:03 +00:00
Helvetix Victorinox dd16b8b17b New function to initialise a GimpCompositeContext
* app/composite/gimp-composite-regression.[ch]: New function to
  initialise a GimpCompositeContext

* Makefile.am: do not generate the test form of
  gimp-composite-generic.c

* app/composite/gimp-composite-generic-test.c: unused, removed.

* app/composite/make-installer.py app/composite/*-test.c: New
  tests were broken because the byte-for-byte checks checked the
  same buffer against itself.
2003-08-22 05:54:01 +00:00
Helvetix Victorinox 9d405b607c Regenerated installers and testers.
* app/composite/: Regenerated installers and testers.

* app/composite/make-install.py: increased tests of pixels to 1024*1024+1

* app/composite/gimp-composite-mmx.c (gimp_composite_overlay_rgba8_rgba8_rgba_mmx):
  Backed out of the current build.  Although the unit tests all
  pass, the emperical evidence is that something is wrong with it.
2003-08-20 02:55: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 7d1f8a9686 retired and removed.
* app/composite/gimp-composite-dispatch.[ch]: retired and removed.

* app/composite/Makefile.am: The 'test' target now builds and runs
  all the tests in TESTS

  Fixed typos of mismatched parenthesis in 'regenerate' target

* app/composite/Makefile.am: TESTS now include ss2 and 3dnow
  instruction sets.

* app/composite/make-gimp-composite-dispatch.py: retired and removed.

* app/composite/gimp-composite.c: call the installers of all the
  various instruction sets supplied by x86 type processors.

* app/base/base.c (base_init): Call gimp_composite_init() *before*
  paint_funcs_setup() (preparation for retiring
  app/paint-funcs/paint-funcs.c)

* app/composite/gimp-composite-sse2.[ch]
* app/composite/gimp-composite-3dnow.[ch]
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-3dnow-installer.c:
  Added

* app/composite/make-installer.py: generate regression test
  programmes that take the command line arguments --iterations and
  --n-pixels for the number of iterations of a set of tests, and the
  number of pixels to use in each test, respectively.

  Conditionally compile tests in order to build and run tests on
  machines that can actually perform the tests.

  Failing a regression test now causes remaining tests to be
  skipped and a non-zero exit code by the programme.
2003-08-18 01:47:10 +00:00
Helvetix Victorinox 1b33a15e03 make gimp-composite functions the default.
* app/composite/gimp-composite.c (gimp_composite_init): make gimp-composite
  functions the default.

* app/composite/make-installer.py: changed option --n_pixels to --n-pixels
2003-08-17 21:19:58 +00:00
Helvetix Victorinox c86d82f076 regnerated
* app/composite/gimp-composite-{mmx,sse,altivec,vis}-{installer,test}.c:
  regnerated

* app/composite/gimp-composite-sse.c
  (gimp_composite_overlay_rgba8_rgba8_rgba8_sse): fixed (rewrote)

* app/composite/make-installer.py:
  command line option --iterations to set the number of iterations for a test.
  command line option --n_ixels to set the number of pixels for a test.

* app/composite/gimp-composite-mmx.c
  (gimp_composite_grain_merge_rgba8_rgba8_rgba8_mmx): fixed (rewrote)
  (gimp_composite_overlay_rgba8_rgba8_rgba8_mmx): fixed (rewrote)
  (gimp_composite_value_rgba8_rgba8_rgba8_mmx):
	  new testing shows it to be broken (temporarily removed from use)
2003-08-17 19:01:24 +00:00
Helvetix Victorinox 0af62f01bf generate smaller tables and less code. Now takes real command line
* app/composite/make-installer.py: generate smaller tables and
  less code.  Now takes real command line options:
  options:
    --version                        show program's version number and exit
    -h, --help                       show this help message and exit
    -f FILE, --file=FILE             the input object file
    -t, --test                       generate regression testing code
    -r REQUIRES, --requires=REQUIRES cpp #if conditionals

  See Makefile.am for how I use these options to generate the code.

* app/composite/gimp-composite-altivec-{installer,test}.c:
* app/composite/gimp-composite-generic-{installer,test}.c:
* app/composite/gimp-composite-mmx-{installer,test}.c
* app/composite/gimp-composite-sse-{installer,test}.c:
* app/composite/gimp-composite-vis-{installer,test}.c: regenerated
  with smaller tables and less ode.
2003-08-15 04:31:18 +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