blob: c4ac9d9b31d0c22801efa28d21985160683989bd [file] [log] [blame]
Brian Paul99811c32013-03-25 13:15:37 -06001<!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-Lundecdab0d2019-05-06 13:26:47 +020011 The Mesa 3D Graphics Library
Brian Paul99811c32013-03-25 13:15:37 -060012</div>
13
14<iframe src="contents.html"></iframe>
15<div class="content">
16
17<h1>Application Issues</h1>
18
19<p>
20This 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)
28creates a GLX visual without requesting a depth buffer.
29This causes bad rendering if the OpenGL driver happens to choose a visual
30without a depth buffer.
31</p>
32
33<p>
34Mesa 9.1.2 and later (will) support a DRI configuration option to work around
35this issue.
Eric Engestrom30cf9ff2017-02-09 02:10:17 +000036Using the <a href="https://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
Brian Paul99811c32013-03-25 13:15:37 -060037set the "Create all visuals with a depth buffer" option before running Topogun.
38Then, all GLX visuals will be created with a depth buffer.
39</p>
40
41
42<h2>Old OpenGL games</h2>
43
44<p>
45Some old OpenGL games (approx. ten years or older) may crash during
46start-up because of an extension string buffer-overflow problem.
47</p>
48
49<p>
50The problem is a modern OpenGL driver will return a very long string
Erik Faye-Lund392c0832019-05-28 13:14:03 +020051for the <code>glGetString(GL_EXTENSIONS)</code> query and if the application
Brian Paul99811c32013-03-25 13:15:37 -060052naively copies the string into a fixed-size buffer it can overflow the
53buffer and crash the application.
54</p>
55
56<p>
Erik Faye-Lund392c0832019-05-28 13:14:03 +020057The work-around is to set the <code>MESA_EXTENSION_MAX_YEAR</code>
58environment variable to the approximate release year of the game.
59This will cause the <code>glGetString(GL_EXTENSIONS)</code> query to only report
60extensions older than the given year.
Brian Paul99811c32013-03-25 13:15:37 -060061</p>
62
63<p>
64For example, if the game was released in 2001, do
Erik Faye-Lund41573d42019-04-18 16:12:08 +020065</p>
Brian Paul99811c32013-03-25 13:15:37 -060066<pre>
67export MESA_EXTENSION_MAX_YEAR=2001
68</pre>
Erik Faye-Lund41573d42019-04-18 16:12:08 +020069<p>
Brian Paul99811c32013-03-25 13:15:37 -060070before running the game.
71</p>
72
73
74
75<h2>Viewperf</h2>
76
77<p>
78See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
79of Viewperf issues.
80</p>
81
82
83</div>
84</body>
85</html>