Commit Graph

135 Commits

Author SHA1 Message Date
Sven Neumann f478549bf1 replaced binary operations with a naive but faster implementation using a
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-09-27 23:10:26 +00:00
Manish Singh e5fe84afb0 ypto 2005-08-01 05:19:45 +00:00
Manish Singh f7b14365aa app/composite/Makefile.am fix code generation filenames.
2005-07-31  Manish Singh  <yosh@gimp.org>

        * app/composite/Makefile.am
        * app/composite/make-installer.py: fix code generation filenames.
2005-08-01 05:16:44 +00:00
Manish Singh c286b386fd Oops 2005-08-01 04:55:11 +00:00
Manish Singh b55753bb21 acinclude.m4 m4macros/Makefile.am new macro: GIMP_DETECT_CFLAGS; used to
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.
2005-08-01 04:45:34 +00:00
Helvetix Victorinox f41b1f24f6 Trying to be more flexible in register use so the compiler can do reloads
* 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.
2005-05-17 17:24:26 +00:00
Helvetix Victorinox 386afe43f9 app/composite/gimp-composite-altivec-installer.c reverted to working
* 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.
2005-05-15 01:08:31 +00:00
Helvetix Victorinox ddc5175908 Fixed signedness problems is calls to gimp_rgb_to_hsv_int() and the like.
* 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
2005-05-14 23:17:56 +00:00
Manish Singh 2789014d06 Revert so that altivec code is used again. 2005-05-14 06:36:49 +00:00
Helvetix Victorinox 8bdac41d56 Updated with proper register clobber lists. Some code clean-up
(removing dead code, commented out code).  Renegerated installers
and testers.
2005-05-14 03:10:13 +00:00
Helvetix Victorinox 32ca225aa0 Repaired a latent bug in gimp_composite_lighten_rgba8_rgba8_rgba8_sse2
* 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-10 05:26:11 +00:00
Sven Neumann 260bf6e8ba applied a patch from Joao S. O. Bueno Calligaris that changes the SSE2
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-05-06 12:30:51 +00:00
Hans Breuer 28a2b13581 build menus with nmake, too menus/Makefile.am : added to EXTRA_DIST
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
2005-04-24 15:39:15 +00:00
Manish Singh f34d1972cd More accelerated functions (screen, grain_merge, grain_extract, divide,
2005-03-19  Manish Singh  <yosh@gimp.org>

        * app/composite/gimp-composite-altivec.[ch]: More accelerated functions
        (screen, grain_merge, grain_extract, divide, dodge) from Frederic
        Leroy.

        * app/composite/gimp-composite-altivec-installer.c
        * app/composite/gimp-composite-altivec-test.c: regenerated.
2005-03-19 20:25:36 +00:00
Manish Singh fe77740159 More accelerated functions (multiply, blend) from Frederic Leroy.
2005-03-19  Manish Singh  <yosh@gimp.org>

        * app/composite/gimp-composite-altivec.[ch]: More accelerated functions
        (multiply, blend) from Frederic Leroy.

        * app/composite/gimp-composite-altivec-installer.c
        * app/composite/gimp-composite-altivec-test.c: regenerated.
2005-03-19 08:35:15 +00:00
Manish Singh b023ed0797 More accelerated functions from Frederic Leroy.
2005-03-13  Manish Singh  <yosh@gimp.org>

        * app/composite/gimp-composite-altivec.[ch]: More accelerated functions
        from Frederic Leroy.

        * app/composite/gimp-composite-altivec-installer.c
        * app/composite/gimp-composite-altivec-test.c: regenerated.
2005-03-13 21:44:32 +00:00
Sven Neumann f05ebb54b6 delete trailing whitespace.
2005-03-10  Sven Neumann  <sven@gimp.org>

	* app/composite/gimp-composite-altivec.c: delete trailing whitespace.
2005-03-10 18:52:46 +00:00
Manish Singh c47f05563e Oops 2005-03-06 11:17:17 +00:00
Manish Singh ec558dfac2 contort it to compile with Apple's weirdo gcc.
2003-03-06  Manish Singh  <yosh@gimp.org>

        * app/composite/gimp-composite-altivec.c: contort it to compile with
        Apple's weirdo gcc.

        * app/composite/gimp-composite-altivec.h: honor USE_ALTIVEC.
2005-03-06 11:16:22 +00:00
Manish Singh 7846ed68db app/composite/gimp-composite-altivec-installer.c regenerated so the new
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.
2005-03-06 09:11:46 +00:00
Manish Singh 9a263bb917 revised tests for AltiVec. Define ALTIVEC_EXTRA_CFLAGS for the extra
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
2005-03-06 08:43:25 +00:00
Helvetix Victorinox ef6c61fb5e app/composite/gimp-composite-altivec.[ch]
* 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.
2005-03-06 05:57:10 +00:00
Helvetix Victorinox 35d83c2758 app/composite/gimp-composite-generic.c app/composite/gimp-composite-mmx.c
* 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.
2005-03-05 17:29:21 +00:00
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
Daniel Egger 0add60298a app/base/Makefile.am app/composite/*akefile.am app/config/*akefile.am
2005-02-27  Daniel Egger  <de@axiros.com>

	* app/base/Makefile.am
	* app/composite/*akefile.am
	* app/config/*akefile.am
	* app/core/*akefile.am
	* app/display/*akefile.am
	* app/file/*akefile.am
	* app/paint-funcs/*akefile.am
	* app/pdb/*akefile.am
	* app/plug-in/*akefile.am
	* app/text/*akefile.am
	* app/tools/*akefile.am
	* app/vectors/*akefile.am
	* app/xcf/*akefile.am: Commonized include paths to always look
	in the builddir also to cater for srcdir != builddir builds.
2005-02-27 13:22:01 +00:00
Sven Neumann 9511753a02 check for gthread-2.0 unless the --disable-mp option is given.
2005-02-13  Sven Neumann  <sven@gimp.org>

	* configure.in: check for gthread-2.0 unless the --disable-mp
	option is given.

	* app/app_procs.c (app_libs_init): call g_thread_init().

	* app/base/pixel-processor.c: ported to GThread.

	* app/Makefile.am
	* app/*/Makefile.am: use @GTHREAD_CFLAGS@.
2005-02-13 15:08:08 +00:00
Raphael Quinet 7ce0dfc741 minor doc fix for formula used by
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-26 06:22:06 +00:00
Sven Neumann 829fc5a061 app/composite/gimp-composite-x86.h applied patch from Andreas Jochens that
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).
2005-01-07 12:23:44 +00:00
Sven Neumann 4f06153115 do nothing if the color has no saturation. Patch by Joao S. Bueno. Fixes
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.
2004-10-30 18:42:09 +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 ed055fa66f app/composite/gimp-composite-x86.h app/composite/gimp-composite-sse.c
* 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.
2004-08-29 21:06:31 +00:00
Helvetix Victorinox cbdcd0ee54 app/composite/gimp-composite-mmx.c app/composite/gimp-composite-sse.c
* 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.
2004-08-29 20:07:06 +00:00
Helvetix Victorinox 8a3bdf5297 app/composite/gimp-composite-sse.c More updates to accomodate the clobber
* 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-08-28 21:21:07 +00:00
Sven Neumann aab25cdc36 now that the output depends on --verbose, enable it for stable releases
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.
2004-07-20 16:55:39 +00:00
Helvetix Victorinox c7c91f333a Updated make-installer.py command line to take advantage of the new
* 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.
2004-07-20 16:33:58 +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
Sven Neumann 03b3f8c90f app/app_procs.c app/base/base.[ch] pass "be_verbose" to the base and
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-20 14:33:22 +00:00
Helvetix Victorinox d02bc5453b More clobber register corrections. 2004-07-20 06:33:03 +00:00
Helvetix Victorinox a11dbef340 Correction of clobbered register lists, as additional progress against bug #147013. 2004-07-19 15:57:07 +00:00
Sven Neumann 55c03a25b5 don't start a comment with /** unless it's meant to be parsed by gtk-doc.
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.
2004-07-18 18:24:32 +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
Sven Neumann b2d8a3d563 define timersub() macro in case it's undefined. Patch by Tim Mooney, fixes
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-06-22 18:11:08 +00:00
Sven Neumann 25855661f6 just some cleanup.
2004-06-12  Sven Neumann  <sven@gimp.org>

	* app/composite/gimp-composite.[ch]: just some cleanup.
2004-06-12 19:23:45 +00:00
Hans Breuer 5cbb416a91 new file to keep common definitions for the msc build use common
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-07 23:01:33 +00:00
Raphaël Quinet 9e4cc676df Added a conditional definition of the preprocessor symbol GIMP_UNSTABLE if
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-02-05 00:34:50 +00:00
Manish Singh 998ed9c73a Make the assembly PIC safe. Fixes #132999.
2004-01-31  Manish Singh  <yosh@gimp.org>

        * app/base/cpu-accel.c: Make the assembly PIC safe. Fixes #132999.

        * app/composite/Makefile.am
        * app/composite/gimp-composite-3dnow.c
        * app/composite/gimp-composite-mmx.c
        * app/composite/gimp-composite-sse.c
        * app/composite/gimp-composite-sse2.c: Disable code when compiling
        for PIC on ia32, since it'll barf things. These can be fixed later.

        * app/composite/gimp-composite-3dnow-test.c
        * app/composite/gimp-composite-mmx-installer.c
        * app/composite/gimp-composite-mmx-test.c
        * app/composite/gimp-composite-sse-installer.c
        * app/composite/gimp-composite-sse-test.c
        * app/composite/gimp-composite-sse2-installer.c
        * app/composite/gimp-composite-sse2-test.c: Regenerated.
2004-01-31 09:01:36 +00:00
Manish Singh 0f338c4c2f app/composite/gimp-composite-generic.c
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-28 03:58:52 +00:00
Manish Singh 9db6153f09 modernized, made a lot of things m4 macros, and made versioning a lot more
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-22 03:51:46 +00:00
Michael Natterer bfaecda66e G_LOG_DOMAIN should be "Gimp-Composite", not "Gimp-Composition".
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.
2004-01-13 17:48:38 +00:00