2006-06-02 Sven Neumann <sven@gimp.org>
Moved the CPU detection code to libgimpbase (see bug #342860):
* app/base/Makefile.am
* app/base/cpu-accel.[ch]
* app/base/test-cpu-accel.c: removed here...
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimpcpuaccel.[ch]
* libgimpbase/test-cpu-accel.c: ... and added here again with
some API changes.
* app/composite/Makefile.am
* app/composite/make-installer.py: changed accordingly.
* app/composite/gimp-composite-*-installer.c: regenerated.
* libgimp/gimp.c (gimp_main): call gimp_set_use_cpu_accel().
* 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
* app/composite/gimp-composite-generic.[ch]: Added a proper
implementation of the BEHIND drawing mode. This should fix bug
#121889
* app/composite/gimp-composite-generic-installer.c: regenerated
* 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.
* 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.
* 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.