2006-09-28 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.h
* app/composite/gimp-composite-generic.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: added lots of const qualifiers,
moved variables to local scopes.
* app/base/pixel-processor.c: formatting.
2006-08-31 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-mmx.c: moved declarations at the
beginning of the functions.
* app/tools/gimptransformtool.c (gimp_transform_tool_doit):
display a message if no paths are available. Could catch this
earlier, but this is the least intrusive change to fix bug #353495.
2006-06-02 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.c (gimp_composite_use_cpu_accel):
need to test for GIMP_COMPOSITE_OPTION_NOEXTENSIONS.
* libgimp/gimp.c (gimp_config): call gimp_set_use_cpu_accel() from
here, not in gimp_main().
* plug-ins/common/sel_gauss.c: applied patch from Loren Merritt
that adds MMX code to boost the plug-in speed (bug #342860).
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().
2006-06-01 Sven Neumann <sven@gimp.org>
Added basic framework for plug-ins to access the use_cpu_accel
configuration (bug #342860):
* app/composite/gimp-composite.[ch]: added new function
gimp_composite_use_cpu_accel().
* libgimpbase/gimpprotocol.[ch]: added use_cpu_accel to the config
message.
* app/plug-in/gimppluginmanager-call.c: pass the return value of
gimp_composite_use_cpu_accel() for config.use_cpu_accel.
* libgimp/gimp.[ch]: make the config value accessible by means of
a new function gimp_use_cpu_accel().
* libgimp/gimp.def: updated.
2006-01-17 Raphael Quinet <raphael@gimp.org>
* app/composite/make-installer.py (print_function_table): updated
so that the code does not add trailing whitespace in generated
function tables.
2005-09-28 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h (swap_pixels): replaced
binary operations with a naive but faster implementation using a
local variable.
* app/composite/gimp-composite-generic.c
(gimp_composite_swap_any_any_any_generic): same change here.
2005-07-31 Manish Singh <yosh@gimp.org>
* acinclude.m4
* m4macros/Makefile.am
* m4macros/detectcflags.m4: new macro: GIMP_DETECT_CFLAGS; used
to detect which of a set of compiler options a compiler supports.
* configure.in: use the above for the altivec and -fno-strict-aliasing
flags. Also, use it to detect the presence of -mmmx and -msse, since
those are needed to compile even MMX/SSE assembly with gcc 4.0. Define
MMX/SSE_EXTRA_CFLAGS.
* app/composite/Makefile.am: compile each of the composite flavors
into their own library, so we can use automake's per-target CFLAGS.
Use MMX/SSE/ALTIVEC_EXTRA_CFLAGS in the appropriate places. Build
libappcomposite.a out of the resulting objects.
* app/composite/gimp-composite-3dnow.c
* app/composite/gimp-composite-altivec.c
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse2.c
* app/composite/gimp-composite-vis.c
* app/composite/make-installer.py: move the _init functions into
the installers, so only actually mmx/sse/etc. code gets compiled
under the appropriate CFLAGS.
* app/composite/gimp-composite-3dnow-installer.c
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-mmx-installer.c
* app/composite/gimp-composite-sse-installer.c
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-vis-installer.c: regenerated.
* app/composite/gimp-composite.c: remove useless cpu-accel.h include.
* app/composite/gimp-composite-sse2.c:
Trying to be more flexible in register use so the compiler can do
reloads without running out of registers when using optimisation
modes other than 2.
Avoid the message "error: can't find a register in class
`GENERAL_REGS' while reloading `asm'"
* app/composite/gimp-composite-x86.h
Use more newlines in asm() macros to ensure that gcc gets the
instruction count correct. This is partially complete as of this
commit.
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-altivec-test.c: reverted to working
versions. Currently, if you regenerate the installers and
testers, only those that work on your current machine will be
generated properly.
* app/composite/gimp-composite-generic.c:
Fixed signedness problems is calls to gimp_rgb_to_hsv_int() and the like.
* app/composite/gimp-composite-mmx.[ch]:
Small fixes to register clobber lists.
Added gimp_composite_subtract_va8_va8_va8_mmx.
Regenerated
* app/composite/gimp-composite-sse2.c: Repaired a latent bug in
gimp_composite_lighten_rgba8_rgba8_rgba8_sse2 where setting up
the alpha masks were not done correctly. A redundant (better?)
fix to bug #164061
Use movntq instructions to avoid processor cache pollution.
Some adjustments to register allocation specifications.
2005-05-06 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-sse2.c
(gimp_composite_lighten_rgba8_rgba8_rgba8_sse2): applied a patch
from Joao S. O. Bueno Calligaris that changes the SSE2 code to
load the proper register. Fixes bug #164061.
2005-04-24 Hans Breuer <hans@breuer.org>
* menus/makefile.msc : build menus with nmake, too
menus/Makefile.am : added to EXTRA_DIST
* **/makefile.msc app/gimpcore.def : updated
* app/base/tmp-buf.c : there is no pid_t with msvc so typedef one
2003-03-06 Manish Singh <yosh@gimp.org>
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-altivec-test.c: regenerated so the new
implementation is actually used.
2003-03-06 Manish Singh <yosh@gimp.org>
* configure.in: revised tests for AltiVec. Define ALTIVEC_EXTRA_CFLAGS
for the extra compiler options needed. Also, support runtime checking
for AltiVec through the sysctl on Mac OS X, instead of SIGILL assembly
instruction checking, which needs GNU as.
* app/base/cpu_accel.c: use the sysctl if available.
* app/composite/Makefile.am: use ALTIVEC_EXTRA_CFLAGS.
* app/composite/gimp-composite-altivec.c: conditionally #include
altivec.h
* app/composite/gimp-composite-altivec.[ch]
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-altivec-test.c:
Added updates from starox-gimp@starox.org
(Frederic Leroy) to implement Altivec instruction optimisations.
Regenerated sources.
* app/composite/gimp-composite-mmx.c: Replaced a pesky movntq
instruction with a movq. Movntq is an SSE instruction, not an MMX
instruction.
* app/composite/gimp-composite-generic.c
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-sse.c
Incorporated a very clean patch from starox-gimp@starox.org
(Frederic Leroy) which improves the generic performance of the
burn compositing function. Speed is improved at a cost of a 64k
look-up table which is probably manageable for 8bpp images, but at
larger bpp images (which currently are not supported by the GIMP)
this is unlikely to be tolerable.
The generic C implementation of the burn function uses this
look-up table, the mmx/sse implementations have been commented out.
* 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-01-26 Raphael Quinet <raphael@gimp.org>
* app/composite/gimp-composite-generic.c: minor doc fix for
formula used by gimp_composite_multiply_any_any_any_generic().
2005-01-07 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-x86.h
* app/composite/gimp-composite-sse.c: applied patch from Andreas
Jochens that fixes the build on amd64 with gcc-4.0 (bug #163041).
2004-10-30 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-generic.c
(gimp_composite_hue_any_any_any_generic): do nothing if the color
has no saturation. Patch by Joao S. Bueno. Fixes bug #123296.
* 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.
* app/composite/gimp-composite-x86.h
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse2.c: Fixed a bunch of
warnings due to bad type casting.
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-x86.h
* app/composite/gimp-composite-sse2.c:
The last changes to fix the the clobber registers bug #147013.
Commented out some dead code to be reviewed later.
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse2.c: More updates to accomodate
the clobber registers. Additional progress against bug #147013.
* app/composite/gimp-composite-sse.h: Fixed a bug where the wrong
manifest constant definition caused sse2 instructions to never be
compiled.
2004-07-20 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.c (gimp_composite_init): now that
the output depends on --verbose, enable it for stable releases also.
* app/composite/Makefile.am (regenerate): Updated make-installer.py
command line to take advantage of the new compile time method of
determining which instruction set to compile.