mesa/docs/perf.rst
Erik Faye-Lund 4d066836e3 docs: convert articles to reructuredtext
This uses the previously added scripts to convert the documentation to
reStructuredText, which is both easier to read offline, and can be used
to generate modern HTML for online documentation.

No modification to the generated results have been done.

Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4630>
2020-06-13 10:42:00 +00:00

45 lines
2.3 KiB
ReStructuredText

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.