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