| Andreas Boll | ecd5c7c | 2012-06-12 09:05:03 +0200 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | 
 | 2 | <html lang="en"> | 
 | 3 | <head> | 
 | 4 |   <meta http-equiv="content-type" content="text/html; charset=utf-8"> | 
 | 5 |   <title>Performance Tips</title> | 
 | 6 |   <link rel="stylesheet" type="text/css" href="mesa.css"> | 
 | 7 | </head> | 
 | 8 | <body> | 
| Brian Paul | 0b27ace | 2003-03-08 17:38:57 +0000 | [diff] [blame] | 9 |  | 
| Andreas Boll | b5da52a | 2012-09-18 18:57:02 +0200 | [diff] [blame] | 10 | <div class="header"> | 
 | 11 |   <h1>The Mesa 3D Graphics Library</h1> | 
 | 12 | </div> | 
 | 13 |  | 
 | 14 | <iframe src="contents.html"></iframe> | 
 | 15 | <div class="content"> | 
 | 16 |  | 
| Andreas Boll | ecd5c7c | 2012-06-12 09:05:03 +0200 | [diff] [blame] | 17 | <h1>Performance Tips</h1> | 
| Brian Paul | 0b27ace | 2003-03-08 17:38:57 +0000 | [diff] [blame] | 18 |  | 
 | 19 | <p> | 
 | 20 | Performance tips for software rendering: | 
| Andreas Boll | ecd5c7c | 2012-06-12 09:05:03 +0200 | [diff] [blame] | 21 | </p> | 
| Brian Paul | 0b27ace | 2003-03-08 17:38:57 +0000 | [diff] [blame] | 22 | <ol> | 
 | 23 |  | 
 | 24 | <li> Turn off smooth shading when you don't need it (glShadeModel) | 
 | 25 | <li> Turn off depth buffering when you don't need it. | 
 | 26 | <li> Turn off dithering when not needed. | 
 | 27 | <li> Use double buffering as it's often faster than single buffering | 
 | 28 | <li> Compile in the X Shared Memory extension option if it's supported | 
 | 29 |       on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for | 
 | 30 |       your system in the Make-config file. | 
 | 31 | <li> Recompile Mesa with more optimization if possible. | 
 | 32 | <li> Try to maximize the amount of drawing done between glBegin/glEnd pairs. | 
 | 33 | <li> Use the MESA_BACK_BUFFER variable to find best performance in double | 
 | 34 |       buffered mode.  (X users only) | 
 | 35 | <li> Optimized polygon rasterizers are employed when: | 
 | 36 |          rendering into back buffer which is an XImage | 
 | 37 |          RGB mode, not grayscale, not monochrome | 
 | 38 |          depth buffering is GL_LESS, or disabled | 
 | 39 |          flat or smooth shading | 
 | 40 |          dithered or non-dithered | 
 | 41 |          no other rasterization operations enabled (blending, stencil, etc) | 
 | 42 | <li> Optimized line drawing is employed when: | 
 | 43 |          rendering into back buffer which is an XImage | 
 | 44 |          RGB mode, not grayscale, not monochrome | 
 | 45 |          depth buffering is GL_LESS or disabled | 
 | 46 |          flat shading | 
 | 47 |          dithered or non-dithered | 
 | 48 |          no other rasterization operations enabled (blending, stencil, etc) | 
 | 49 | <li> Textured polygons are fastest when: | 
 | 50 |          using a 3-component (RGB), 2-D texture | 
 | 51 |          minification and magnification filters are GL_NEAREST | 
 | 52 |          texture coordinate wrap modes for S and T are GL_REPEAT | 
 | 53 |          GL_DECAL environment mode | 
 | 54 |          glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST ) | 
 | 55 |          depth buffering is GL_LESS or disabled | 
 | 56 | <li> Lighting is fastest when: | 
 | 57 |          Two-sided lighting is disabled | 
 | 58 |          GL_LIGHT_MODEL_LOCAL_VIEWER is false | 
 | 59 |          GL_COLOR_MATERIAL is disabled | 
 | 60 |          No spot lights are used (all GL_SPOT_CUTOFFs are 180.0) | 
 | 61 |          No local lights are used (all position W's are 0.0) | 
| Andreas Boll | ddb0557 | 2012-06-25 21:52:10 +0200 | [diff] [blame] | 62 |          All material and light coefficients are >= zero | 
| Brian Paul | 0b27ace | 2003-03-08 17:38:57 +0000 | [diff] [blame] | 63 | <li> XFree86 users:  if you want to use 24-bit color try starting your | 
 | 64 |       X server in 32-bit per pixel mode for better performance.  That is, | 
 | 65 |       start your X server with | 
 | 66 |          startx -- -bpp 32 | 
 | 67 |       instead of | 
 | 68 |          startx -- -bpp 24 | 
 | 69 | <li> Try disabling dithering with the MESA_NO_DITHER environment variable. | 
 | 70 |       If this env var is defined Mesa will disable dithering and the | 
 | 71 |       command glEnable(GL_DITHER) will be ignored. | 
 | 72 | </ol> | 
 | 73 |  | 
| Andreas Boll | b5da52a | 2012-09-18 18:57:02 +0200 | [diff] [blame] | 74 | </div> | 
| Andreas Boll | ecd5c7c | 2012-06-12 09:05:03 +0200 | [diff] [blame] | 75 | </body> | 
 | 76 | </html> |