Performance Tips ================ Performance tips for software rendering: #. Turn off smooth shading when you don't need it (``glShadeModel``) #. Turn off depth buffering when you don't need it. #. Turn off dithering when not needed. #. Use double buffering as it's often faster than single buffering #. Compile in the X Shared Memory extension option if it's supported on your system by adding ``-DSHM`` to CFLAGS and ``-lXext`` to XLIBS for your system in the Make-config file. #. Recompile Mesa with more optimization if possible. #. Try to maximize the amount of drawing done between glBegin/glEnd pairs. #. Use the ``MESA_BACK_BUFFER`` variable to find best performance in double buffered mode. (X users only) #. Optimized polygon rasterizers are employed when - rendering into back buffer which is an XImage RGB mode, not grayscale, not monochrome - depth buffering is ``GL_LESS``, or disabled - flat or smooth shading dithered or non-dithered - no other rasterization operations enabled (blending, stencil, etc) #. Optimized line drawing is employed when - rendering into back buffer which is an XImage RGB mode, not grayscale, not monochrome depth - buffering is ``GL_LESS`` or disabled - flat shading dithered or non-dithered - no other rasterization operations enabled (blending, stencil, etc) #. Textured polygons are fastest when - using a 3-component (RGB) - 2-D texture minification and magnification filters are ``GL_NEAREST`` - texture coordinate wrap modes for S and T are ``GL_REPEAT`` ``GL_DECAL`` - environment mode ``glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )`` - depth buffering is ``GL_LESS`` or disabled #. Lighting is fastest when: - Two-sided lighting is disabled - ``GL_LIGHT_MODEL_LOCAL_VIEWER`` is false - ``GL_COLOR_MATERIAL`` is disabled - No spot lights are used (all ``GL_SPOT_CUTOFFs`` are 180.0) - No local lights are used (all position W's are 0.0) - All material and light coefficients are >= zero #. XFree86 users: if you want to use 24-bit color try starting your X server in 32-bit per pixel mode for better performance. That is, start your X server with ``startx -- -bpp 32`` instead of ``startx -- -bpp 24`` #. Try disabling dithering with the ``MESA_NO_DITHER`` environment variable. If this env var is defined Mesa will disable dithering and the command ``glEnable(GL_DITHER)`` will be ignored.