1848b8605Smrg<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2848b8605Smrg<html lang="en">
3848b8605Smrg<head>
4848b8605Smrg  <meta http-equiv="content-type" content="text/html; charset=utf-8">
5848b8605Smrg  <title>Application Issues</title>
6848b8605Smrg  <link rel="stylesheet" type="text/css" href="mesa.css">
7848b8605Smrg</head>
8848b8605Smrg<body>
9848b8605Smrg
10848b8605Smrg<div class="header">
11848b8605Smrg  <h1>The Mesa 3D Graphics Library</h1>
12848b8605Smrg</div>
13848b8605Smrg
14848b8605Smrg<iframe src="contents.html"></iframe>
15848b8605Smrg<div class="content">
16848b8605Smrg
17848b8605Smrg<h1>Application Issues</h1>
18848b8605Smrg
19848b8605Smrg<p>
20848b8605SmrgThis page documents known issues with some OpenGL applications.
21848b8605Smrg</p>
22848b8605Smrg
23848b8605Smrg
24848b8605Smrg<h2>Topogun</h2>
25848b8605Smrg
26848b8605Smrg<p>
27848b8605Smrg<a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least)
28848b8605Smrgcreates a GLX visual without requesting a depth buffer.
29848b8605SmrgThis causes bad rendering if the OpenGL driver happens to choose a visual
30848b8605Smrgwithout a depth buffer.
31848b8605Smrg</p>
32848b8605Smrg
33848b8605Smrg<p>
34848b8605SmrgMesa 9.1.2 and later (will) support a DRI configuration option to work around
35848b8605Smrgthis issue.
36b8e80941SmrgUsing the <a href="https://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
37848b8605Smrgset the "Create all visuals with a depth buffer" option before running Topogun.
38848b8605SmrgThen, all GLX visuals will be created with a depth buffer.
39848b8605Smrg</p>
40848b8605Smrg
41848b8605Smrg
42848b8605Smrg<h2>Old OpenGL games</h2>
43848b8605Smrg
44848b8605Smrg<p>
45848b8605SmrgSome old OpenGL games (approx. ten years or older) may crash during
46848b8605Smrgstart-up because of an extension string buffer-overflow problem.
47848b8605Smrg</p>
48848b8605Smrg
49848b8605Smrg<p>
50848b8605SmrgThe problem is a modern OpenGL driver will return a very long string
51848b8605Smrgfor the glGetString(GL_EXTENSIONS) query and if the application
52848b8605Smrgnaively copies the string into a fixed-size buffer it can overflow the
53848b8605Smrgbuffer and crash the application.
54848b8605Smrg</p>
55848b8605Smrg
56848b8605Smrg<p>
57848b8605SmrgThe work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable
58848b8605Smrgto the approximate release year of the game.
59848b8605SmrgThis will cause the glGetString(GL_EXTENSIONS) query to only report extensions
60848b8605Smrgolder than the given year.
61848b8605Smrg</p>
62848b8605Smrg
63848b8605Smrg<p>
64848b8605SmrgFor example, if the game was released in 2001, do
65b8e80941Smrg</p>
66848b8605Smrg<pre>
67848b8605Smrgexport MESA_EXTENSION_MAX_YEAR=2001
68848b8605Smrg</pre>
69b8e80941Smrg<p>
70848b8605Smrgbefore running the game.
71848b8605Smrg</p>
72848b8605Smrg
73848b8605Smrg
74848b8605Smrg
75848b8605Smrg<h2>Viewperf</h2>
76848b8605Smrg
77848b8605Smrg<p>
78848b8605SmrgSee the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
79848b8605Smrgof Viewperf issues.
80848b8605Smrg</p>
81848b8605Smrg
82848b8605Smrg
83848b8605Smrg</div>
84848b8605Smrg</body>
85848b8605Smrg</html>
86