646d14d2d3
Corruption has again been reported on Intel hardware running Xorg with the modesetting driver (which uses OpenGL based acceleration instead of SNA acceleration the intel driver defaults to). Reported in various forms on Sandy Bridge (X220), Ivy Bridge (X230) and Haswell (X240). Confirmed to not occur with the intel driver but the xserver was changed to default to the modesetting driver on >= gen4 hardware (except Ironlake). One means of triggering this is to open a large pdf with xpdf on an idle machine and highlight a section of the document. There have been reports of gpu hangs on gen4 intel hardware (T500 with GM45, X61 with 965GM) when starting Xorg as well.
71 lines
2.3 KiB
HTML
71 lines
2.3 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html lang="en">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<title>OpenGL ES</title>
|
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="header">
|
|
<h1>The Mesa 3D Graphics Library</h1>
|
|
</div>
|
|
|
|
<iframe src="contents.html"></iframe>
|
|
<div class="content">
|
|
|
|
<h1>OpenGL ES</h1>
|
|
|
|
<p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More information about
|
|
OpenGL ES can be found at <a href="http://www.khronos.org/opengles/">
|
|
http://www.khronos.org/opengles/</a>.</p>
|
|
|
|
<p>OpenGL ES depends on a working EGL implementation. Please refer to
|
|
<a href="egl.html">Mesa EGL</a> for more information about EGL.</p>
|
|
|
|
<h2>Build the Libraries</h2>
|
|
<ol>
|
|
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code> and enable the Gallium driver for your hardware.</li>
|
|
<li>Build and install Mesa as usual.</li>
|
|
</ol>
|
|
|
|
Alternatively, if XCB-DRI2 is installed on the system, one can use
|
|
<code>egl_dri2</code> EGL driver with OpenGL|ES-enabled DRI drivers
|
|
|
|
<ol>
|
|
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code>.</li>
|
|
<li>Build and install Mesa as usual.</li>
|
|
</ol>
|
|
|
|
<p>Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more
|
|
EGL drivers for your hardware.</p>
|
|
|
|
<h2>Run the Demos</h2>
|
|
|
|
<p>There are some demos in <code>mesa/demos</code> repository.</p>
|
|
|
|
<h2>Developers</h2>
|
|
|
|
<h3>Dispatch Table</h3>
|
|
|
|
<p>OpenGL ES has an additional indirection when dispatching functions</p>
|
|
|
|
<pre>
|
|
Mesa: glFoo() --> _mesa_Foo()
|
|
OpenGL ES: glFoo() --> _es_Foo() --> _mesa_Foo()
|
|
</pre>
|
|
|
|
<p>The indirection serves several purposes</p>
|
|
|
|
<ul>
|
|
<li>When a function is in Mesa and the type matches, it checks the arguments and calls the Mesa function.</li>
|
|
<li>When a function is in Mesa but the type mismatches, it checks and converts the arguments before calling the Mesa function.</li>
|
|
<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
|
|
</ul>
|
|
|
|
<p>Other than the last case, OpenGL ES uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|