docs: prefer lowercase html tags
Signed-off-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
+9
-9
@@ -11,10 +11,10 @@
|
||||
<p>Several factors combine to make efficient dispatch of OpenGL functions
|
||||
fairly complicated. This document attempts to explain some of the issues
|
||||
and introduce the reader to Mesa's implementation. Readers already familiar
|
||||
with the issues around GL dispatch can safely skip ahead to the <A
|
||||
HREF="#overview">overview of Mesa's implementation</A>.</p>
|
||||
with the issues around GL dispatch can safely skip ahead to the <a
|
||||
href="#overview">overview of Mesa's implementation</a>.</p>
|
||||
|
||||
<H2>1. Complexity of GL Dispatch</H2>
|
||||
<h2>1. Complexity of GL Dispatch</h2>
|
||||
|
||||
<p>Every GL application has at least one object called a GL <em>context</em>.
|
||||
This object, which is an implicit parameter to ever GL function, stores all
|
||||
@@ -89,14 +89,14 @@ overhead that it adds to every GL function call.</p>
|
||||
similar function. Mesa provides a wrapper function called
|
||||
<tt>_glapi_get_dispatch</tt> that is used by default.</p>
|
||||
|
||||
<H2>3. Optimizations</H2>
|
||||
<h2>3. Optimizations</h2>
|
||||
|
||||
<p>A number of optimizations have been made over the years to diminish the
|
||||
performance hit imposed by GL dispatch. This section describes these
|
||||
optimizations. The benefits of each optimization and the situations where
|
||||
each can or cannot be used are listed.</p>
|
||||
|
||||
<H3>3.1. Dual dispatch table pointers</H3>
|
||||
<h3>3.1. Dual dispatch table pointers</h3>
|
||||
|
||||
<p>The vast majority of OpenGL applications use the API in a single threaded
|
||||
manner. That is, the application has only one thread that makes calls into
|
||||
@@ -131,7 +131,7 @@ the common case.</p>
|
||||
<tr><td>Improved <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<H3>3.2. ELF TLS</H3>
|
||||
<h3>3.2. ELF TLS</h3>
|
||||
|
||||
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
|
||||
of per-thread, global storage. Variables can be put in this area using some
|
||||
@@ -161,7 +161,7 @@ extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
||||
<tt>GLX_USE_TLS</tt>. Any platform capable of using TLS should use this as
|
||||
the default dispatch method.</p>
|
||||
|
||||
<H3>3.3. Assembly Language Dispatch Stubs</H3>
|
||||
<h3>3.3. Assembly Language Dispatch Stubs</h3>
|
||||
|
||||
<p>Many platforms has difficulty properly optimizing the tail-call in the
|
||||
dispatch stubs. Platforms like x86 that pass parameters on the stack seem
|
||||
@@ -170,7 +170,7 @@ routines are very short, and it is trivial to create optimal assembly
|
||||
language versions. The amount of optimization provided by using assembly
|
||||
stubs varies from platform to platform and application to application.
|
||||
However, by using the assembly stubs, many platforms can use an additional
|
||||
space optimization (see <A HREF="#fixedsize">below</A>).</p>
|
||||
space optimization (see <a href="#fixedsize">below</a>).</p>
|
||||
|
||||
<p>The biggest hurdle to creating assembly stubs is handling the various
|
||||
ways that the dispatch table pointer can be accessed. There are four
|
||||
@@ -235,7 +235,7 @@ implementation of each function. This makes the assembly file considerably
|
||||
larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
|
||||
<tt>glapi_x86.S</tt>) and causes simple changes to the function
|
||||
implementation to generate many lines of diffs. Since the assmebly files
|
||||
are typically generated by scripts (see <A HREF="#autogen">below</A>), this
|
||||
are typically generated by scripts (see <a href="#autogen">below</a>), this
|
||||
isn't a significant problem.</p>
|
||||
|
||||
<p>Once a new assembly file is created, it must be inserted in the build
|
||||
|
||||
Reference in New Issue
Block a user