Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase RIPCache default for nowadays high-resolution printing #3535

Closed
michaelrsweet opened this issue Mar 23, 2010 · 10 comments
Closed

Increase RIPCache default for nowadays high-resolution printing #3535

michaelrsweet opened this issue Mar 23, 2010 · 10 comments
Labels
Milestone

Comments

@michaelrsweet
Copy link
Collaborator

@michaelrsweet michaelrsweet commented Mar 23, 2010

Version: 1.5-feature
CUPS.org User: jsmeix.suse

It seems the current 8MB RIPCache default
has become insufficient for nowadays
high-resolution (color/photo) printing
because in this case filters like pstoraster
may fail.

For an example see
https://answers.launchpad.net/hplip/+question/104395

I think that on nowadays usual hardware a RIPCache default
of something like 32MB (perhaps 64MB or even 128MB)
would not cause any trouble.

For hardware with very little RAM the admin can still
specify an appropriate small RIPCache value.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Mar 23, 2010

CUPS.org User: mike

I agree the default should be increased; assigning to 1.5...

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Mar 23, 2010

CUPS.org User: till.kamppeter

At Debian/Ubuntu we default to 1/4 of the system RAM size. Patch attached. The percentage can naturally be a different one. Admins can as before set any fixed value.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Mar 24, 2010

CUPS.org User: mike

Till, I don't think we're going to use the amount of memory to compute the default RIPCache value - a typical desktop system needs more memory for applications than for printing, and we certainly don't need huge amounts of memory to get full performance from raster inkjet or laser printers from a current system.

Reading from a file in /proc is also a huge hack and not something we want to use in production code.

For a typical 720dpi CMYK print you need about 16MB per inch of page. Using a default of 32MB will provide enough for a couple inches on an inkjet and a full page for a B&W laser printer, so I think we'll change the default to 32MB.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Mar 24, 2010

CUPS.org User: jsmeix.suse

In
https://answers.launchpad.net/hplip/+question/104395
the user wrote that the current 8m RIPCache size
worked for him to print photos up to 8.5x11 paper
but failed for 13x19 paper.

Because 13x19 paper has about 2.6 times the area
of 8.5x11 paper it should be sufficient to increase
the RIPCache size by a factor of about 2.6.
I think that actually only one dimension of the paper
matters: the paper width as it is fed in the printer.
In this case the factor would become less than 2
(about 1.5 or 1.7 depending how the paper is fed).

In the end a four times increased RIPCache size
of 32m should be sufficient even for nowadays
large format photo printing.

But I wonder if 32m is sufficiently future proof
so that this value could stay for a few years.
Wouldn't 64m be better to be more future proof
e.g. for 16 bits per color large format photo printing
and/or for large format photo printing on laser printers?

I don't like the idea to let the default RIPCache size
depend on the amount of main memory on a particular machine
because the RIPCache size must match to the printing requirements
and those are independent of the main memory. (Actually it is
the other way round: The main memory must be sufficient for
the printing requirements.) In other words: I think that
printing should work the same on a 256MB main memory machine
and on a 2GB main memory machine. The 256MB main memory machine
is probably already under full load when processing one single
large format photo print job but for each job it should work
the same.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Mar 24, 2010

CUPS.org User: jimjensen

A RIPCache value of 32m is adequate for printing 13" x 19" (according to my test on a HP B8550), where the paper is fed narrow-dimension (13") into the printer. It might be prudent to test 32m for a 16" width fed into the printer, as 16" x 24" is probably the largest commonly used photo print size that CUPS can routinely be expected to support. The Epson Stylus Pro 4800, for example, can use 16" wide roll paper to print 16" x 24". Unfortunately, Gutenprint drivers do not support this printer, and so I'm unable to perform this test myself.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Sep 15, 2010

CUPS.org User: jsmeix.suse

To work around the issue for now in openSUSE 11.3
https://bugzilla.novell.com/show_bug.cgi?id=628233
I apply the attached
cups-1.4.4-set_default_RIPCache_128m.patch
which sets the default RIPCache to 128m
in any case.

128 MB is half of the minimum required RAM (256 MB)
and a quater of the recommended RAM (512 MB)
for a system where openSUSE 11.3 is to be installed
(according to what is printed on a openSUSE 11.3 box)
so that "RIPCache 128m" should be a safe default
which can be set on any openSUSE 11.3 system.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented Sep 15, 2010

CUPS.org User: jsmeix.suse

Unfortunately I uploaded a broken leftover
cups-1.4.4-set_default_RIPCache_128m.patch

I uploaded the right one as
cups-1_v2.4.4-set_default_RIPCache_128m.patch

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented May 6, 2011

CUPS.org User: mike

Fixed in Subversion repository.

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented May 6, 2011

"cups-1.4.4-set_default_RIPCache_128m.patch":

--- scheduler/conf.c.orig 2010-09-15 12:37:30.000000000 +0200
+++ scheduler/conf.c 2010-04-23 20:56:34.000000000 +0200
@@ -540,7 +540,7 @@ cupsdReadConfiguration(void)

cupsdClearString(&DefaultPaperSize);

  • cupsdSetString(&RIPCache, "128m");
  • cupsdSetString(&RIPCache, "8m");

cupsdSetString(&TempDir, NULL);

--- scheduler/cupsfilter.c.orig 2010-03-31 00:07:33.000000000 +0200
+++ scheduler/cupsfilter.c 2010-09-15 12:39:14.000000000 +0200
@@ -1218,7 +1218,7 @@ read_cupsd_conf(const char filename) /
else
set_string(&FontPath, CUPS_FONTPATH);

  • set_string(&RIPCache, "8m");
  • set_string(&RIPCache, "128m");

if ((temp = getenv("CUPS_SERVERBIN")) != NULL)
set_string(&ServerBin, temp);
--- doc/help/ref-cupsd-conf.html.in.orig 2010-04-23 20:56:34.000000000 +0200
+++ doc/help/ref-cupsd-conf.html.in 2010-09-15 12:45:44.000000000 +0200
@@ -2646,7 +2646,7 @@ appear inside a <COD

Examples

  -RIPCache 8m
  +RIPCache 128m
  RIPCache 1g
  RIPCache 2048k
  

@@ -2657,8 +2657,9 @@ RIPCache 2048k
memory cache used by Raster Image Processor ("RIP") filters such
as imagetoraster and pstoraster. The
size can be suffixed with a "k" for kilobytes, "m" for megabytes,
-or "g" for gigabytes. The default cache size is "8m", or 8
-megabytes.


+or "g" for gigabytes. The default cache size is "128m", or 128
+megabytes (compare

+CUPS STR 3535
).

CUPS 1.1.16RootCertDuration

@michaelrsweet
Copy link
Collaborator Author

@michaelrsweet michaelrsweet commented May 6, 2011

"cups-1_v2.4.4-set_default_RIPCache_128m.patch":

--- scheduler/conf.c.orig 2010-09-15 12:37:30.000000000 +0200
+++ scheduler/conf.c 2010-04-23 20:56:34.000000000 +0200
@@ -540,7 +540,7 @@ cupsdReadConfiguration(void)

cupsdClearString(&DefaultPaperSize);

  • cupsdSetString(&RIPCache, "8m");
  • cupsdSetString(&RIPCache, "128m");

cupsdSetString(&TempDir, NULL);

--- scheduler/cupsfilter.c.orig 2010-03-31 00:07:33.000000000 +0200
+++ scheduler/cupsfilter.c 2010-09-15 12:39:14.000000000 +0200
@@ -1218,7 +1218,7 @@ read_cupsd_conf(const char filename) /
else
set_string(&FontPath, CUPS_FONTPATH);

  • set_string(&RIPCache, "8m");
  • set_string(&RIPCache, "128m");

if ((temp = getenv("CUPS_SERVERBIN")) != NULL)
set_string(&ServerBin, temp);
--- doc/help/ref-cupsd-conf.html.in.orig 2010-04-23 20:56:34.000000000 +0200
+++ doc/help/ref-cupsd-conf.html.in 2010-09-15 12:45:44.000000000 +0200
@@ -2646,7 +2646,7 @@ appear inside a <COD

Examples

  -RIPCache 8m
  +RIPCache 128m
  RIPCache 1g
  RIPCache 2048k
  

@@ -2657,8 +2657,9 @@ RIPCache 2048k
memory cache used by Raster Image Processor ("RIP") filters such
as imagetoraster and pstoraster. The
size can be suffixed with a "k" for kilobytes, "m" for megabytes,
-or "g" for gigabytes. The default cache size is "8m", or 8
-megabytes.


+or "g" for gigabytes. The default cache size is "128m", or 128
+megabytes (compare

+CUPS STR 3535
).

CUPS 1.1.16RootCertDuration

@michaelrsweet michaelrsweet added this to the Stable milestone Mar 17, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant