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"> |
Erik Faye-Lund | ecdab0d | 2019-05-06 13:26:47 +0200 | [diff] [blame] | 11 | The Mesa 3D Graphics Library |
Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [diff] [blame] | 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. |
Eric Engestrom | 30cf9ff | 2017-02-09 02:10:17 +0000 | [diff] [blame] | 36 | Using the <a href="https://dri.freedesktop.org/wiki/DriConf">driconf</a> tool, |
Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [diff] [blame] | 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 |
Erik Faye-Lund | 392c083 | 2019-05-28 13:14:03 +0200 | [diff] [blame] | 51 | for the <code>glGetString(GL_EXTENSIONS)</code> query and if the application |
Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [diff] [blame] | 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> |
Erik Faye-Lund | 392c083 | 2019-05-28 13:14:03 +0200 | [diff] [blame] | 57 | The work-around is to set the <code>MESA_EXTENSION_MAX_YEAR</code> |
| 58 | environment variable to the approximate release year of the game. |
| 59 | This will cause the <code>glGetString(GL_EXTENSIONS)</code> query to only report |
| 60 | extensions older than the given year. |
Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [diff] [blame] | 61 | </p> |
| 62 | |
| 63 | <p> |
| 64 | For example, if the game was released in 2001, do |
Erik Faye-Lund | 41573d4 | 2019-04-18 16:12:08 +0200 | [diff] [blame] | 65 | </p> |
Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [diff] [blame] | 66 | <pre> |
| 67 | export MESA_EXTENSION_MAX_YEAR=2001 |
| 68 | </pre> |
Erik Faye-Lund | 41573d4 | 2019-04-18 16:12:08 +0200 | [diff] [blame] | 69 | <p> |
Brian Paul | 99811c3 | 2013-03-25 13:15:37 -0600 | [diff] [blame] | 70 | before running the game. |
| 71 | </p> |
| 72 | |
| 73 | |
| 74 | |
| 75 | <h2>Viewperf</h2> |
| 76 | |
| 77 | <p> |
| 78 | See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list |
| 79 | of Viewperf issues. |
| 80 | </p> |
| 81 | |
| 82 | |
| 83 | </div> |
| 84 | </body> |
| 85 | </html> |