After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 736199 - Precision Conversion Dithering doesn't work at >16-bit precision
Precision Conversion Dithering doesn't work at >16-bit precision
Status: RESOLVED FIXED
Product: GEGL
Classification: Other
Component: operations
git master
Other All
: Normal normal
: ---
Assigned To: Default Gegl Component Owner
Default Gegl Component Owner
Depends on:
Blocks:
 
 
Reported: 2014-09-06 18:20 UTC by Elle Stone
Modified: 2017-04-10 18:30 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Elle Stone 2014-09-06 18:20:45 UTC
The GIMP 2.9 Precision Conversion Dithering doesn't seem to work at 32- and 64-bit precision, at least not on my computer (lower precisions work). If I say "yes, dither", one CPU runs at 100% forever, even with a very small image, accomplishing nothing at all. The only way to make it stop is to kill the GIMP process from the command line. The terminal output looks like this:

(gimp-2.9:2479): GLib-GObject-WARNING **: value "32" of type 'gint' is invalid or out of range for property 'red-bits' of type 'gint'

repeated for green, blue, and alpha channels

Mitch said "it seems the color-reduction GEGL op we use for dithering only
handles up to 16 bit of precision" and suggested filing a bug report with GEGL.
Comment 1 Michael Natterer 2014-09-07 21:30:35 UTC
This does not fix the bug, it only keeps GIMP from calling
gegl:convert-precision with bits > 16.

commit 77482620b478229bdef55a47306fc76890cbbfdb
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Sep 7 23:25:25 2014 +0200

    Bug 736199 - Precision Conversion Dithering doesn't work at >16-bit precision
    
    Don't allow to select dithering != "none" in the convert precision
    dialog if the precision has more than 16 bits.

 app/dialogs/convert-precision-dialog.c | 42 ++++++++++++++++++++++++++--------
 1 file changed, 32 insertions(+), 10 deletions(-)
Comment 2 Øyvind Kolås (pippin) 2017-04-10 18:30:08 UTC
The GEGL operation, now renamed to gegl:dither now also has limits for these properties that prevent more than 16bpc, though now gegl:dither uses levels rather than bits to specify this:

property_int  (red_levels, _("Red levels"), 6)
    description(_("Number of levels for red channel"))
    value_range (2, 65536)
    ui_gamma (3.0)

property_int  (green_levels, _("Green levels"), 7)
    description(_("Number of levels for green channel"))
    value_range (2, 65536)
    ui_gamma (3.0)

property_int  (blue_levels, _("Blue levels"), 6)
    description(_("Number of levels for blue channel"))
    value_range (2, 65536)
    ui_gamma (3.0)