Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [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>Application Issues</title> |
| 6 | <link rel="stylesheet" type="text/css" href="mesa.css"> |
| 7 | </head> |
| 8 | <body> |
| 9 | |
| 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 | |
| 17 | <h1>Application Issues</h1> |
| 18 | |
| 19 | <p> |
| 20 | This page documents known issues with some OpenGL applications. |
| 21 | </p> |
| 22 | |
| 23 | |
| 24 | <h2>Topogun</h2> |
| 25 | |
| 26 | <p> |
| 27 | <a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least) |
| 28 | creates a GLX visual without requesting a depth buffer. |
| 29 | This causes bad rendering if the OpenGL driver happens to choose a visual |
| 30 | without a depth buffer. |
| 31 | </p> |
| 32 | |
| 33 | <p> |
| 34 | Mesa 9.1.2 and later (will) support a DRI configuration option to work around |
| 35 | this issue. |
| 36 | Using the <a href="http://dri.freedesktop.org/wiki/DriConf">driconf</a> tool, |
| 37 | set the "Create all visuals with a depth buffer" option before running Topogun. |
| 38 | Then, all GLX visuals will be created with a depth buffer. |
| 39 | </p> |
| 40 | |
| 41 | |
| 42 | <h2>Old OpenGL games</h2> |
| 43 | |
| 44 | <p> |
| 45 | Some old OpenGL games (approx. ten years or older) may crash during |
| 46 | start-up because of an extension string buffer-overflow problem. |
| 47 | </p> |
| 48 | |
| 49 | <p> |
| 50 | The problem is a modern OpenGL driver will return a very long string |
| 51 | for the glGetString(GL_EXTENSIONS) query and if the application |
| 52 | naively copies the string into a fixed-size buffer it can overflow the |
| 53 | buffer and crash the application. |
| 54 | </p> |
| 55 | |
| 56 | <p> |
| 57 | The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable |
| 58 | to the approximate release year of the game. |
| 59 | This will cause the glGetString(GL_EXTENSIONS) query to only report extensions |
| 60 | older than the given year. |
| 61 | </p> |
| 62 | |
| 63 | <p> |
| 64 | For example, if the game was released in 2001, do |
| 65 | <pre> |
| 66 | export MESA_EXTENSION_MAX_YEAR=2001 |
| 67 | </pre> |
| 68 | before running the game. |
| 69 | </p> |
| 70 | |
| 71 | |
| 72 | |
| 73 | <h2>Viewperf</h2> |
| 74 | |
| 75 | <p> |
| 76 | See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list |
| 77 | of Viewperf issues. |
| 78 | </p> |
| 79 | |
| 80 | |
| 81 | </div> |
| 82 | </body> |
| 83 | </html> |