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.
* 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 Sven Neumann <sven@gimp.org>
* app/app_procs.c
* app/base/base.[ch]
* app/composite/gimp-composite.[ch]: pass "be_verbose" to the base
and composite subsystems.
2004-07-18 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-mmx.h: don't start a comment with
/** unless it's meant to be parsed by gtk-doc.
* app/actions/Makefile.am:
* app/actions/file-dialog-commands.[ch]: removed, not used any
longer.
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-06-22 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-regression.c: define timersub()
macro in case it's undefined. Patch by Tim Mooney, fixes 'make
check' on Tru64 (bug #144780).
2004-02-07 Hans Breuer <hans@breuer.org>
* gimpdefs.msc : new file to keep common definitions for the msc build
* **/makefile.msc : use common defintions, e.g. GIMP_VER
* Makefile.am : add the former to EXTRA_DIST
2004-02-05 Raphaël Quinet <quinet@gamers.org>
* configure.in: Added a conditional definition of the preprocessor
symbol GIMP_UNSTABLE if the autoconf symbol GIMP_UNSTABLE is
defined.
* app/errors.c (gimp_errors_init): Replaced the #if test on
GIMP_MINOR_VERSION modulo 2 by #ifdef GIMP_UNSTABLE.
* app/composite/gimp-composite.c (gimp_composite_init): Print the
init messages only in unstable versions. Split the messages in
two lines and mention "supported by gimp_composite" in order to
give a hint that the availability of some features depends also on
what code has been written. Fixes bug #128825.
2004-01-27 Manish Singh <yosh@gimp.org>
* app/composite/gimp-composite-generic.c
(gimp_composite_overlay_any_any_any_generic)
* app/paint-funcs/paint-funcs-generic.h (overlay_pixels): use more
than one temporary when stacking INT_MULTs, to avoid undefined
values.
2004-01-21 Manish Singh <yosh@gimp.org>
* configure.in: modernized, made a lot of things m4 macros, and made
versioning a lot more finegrained, in anticipation for post-2.0.
* autogen.sh: bumped up libtool and glib minimum requirements to match
reality.
* gimp-2.0.pc.in
* gimpthumb-2.0.pc.in
* gimpui-2.0.pc.in: adapted to new versioning variables, and bring
in RT_LIBS when needed.
* */*/Makefile.am: adapted to new versioning variables.
2004-01-13 Michael Natterer <mitch@gimp.org>
* app/composite/Makefile.am (AM_CPPFLAGS): G_LOG_DOMAIN should be
"Gimp-Composite", not "Gimp-Composition".
* app/app_procs.c (app_run): register a log handler for the
"Gimp-Composite" domain.