docs: use code-block with caption instead of table

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4630>
This commit is contained in:
Erik Faye-Lund 2019-05-06 14:18:23 +02:00 committed by Marge Bot
parent dcaab1b311
commit 7039310ae3
1 changed files with 8 additions and 12 deletions

View File

@ -64,7 +64,8 @@ conceptually simple:
This can be implemented in just a few lines of C code. The file
``src/mesa/glapi/glapitemp.h`` contains code very similar to this.
::
.. code-block:: c
:caption: Sample dispatch function
void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
{
@ -73,8 +74,6 @@ This can be implemented in just a few lines of C code. The file
(*dispatch->Vertex3f)(x, y, z);
}
Sample dispatch function
The problem with this simple implementation is the large amount of
overhead that it adds to every GL function call.
@ -118,14 +117,13 @@ resulting implementation of ``GET_DISPATCH`` is slightly more complex,
but it avoids the expensive ``pthread_getspecific`` call in the common
case.
::
.. code-block:: c
:caption: Improved ``GET_DISPATCH`` Implementation
#define GET_DISPATCH() \
(_glapi_Dispatch != NULL) \
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
Improved ``GET_DISPATCH`` Implementation
3.2. ELF TLS
~~~~~~~~~~~~
@ -142,15 +140,14 @@ with direct rendering drivers that use either interface. Once the
pointer is properly declared, ``GET_DISPACH`` becomes a simple variable
reference.
::
.. code-block:: c
:caption: TLS ``GET_DISPATCH`` Implementation
extern __thread struct _glapi_table *_glapi_tls_Dispatch
__attribute__((tls_model("initial-exec")));
#define GET_DISPATCH() _glapi_tls_Dispatch
TLS ``GET_DISPATCH`` Implementation
Use of this path is controlled by the preprocessor define
``USE_ELF_TLS``. Any platform capable of using ELF TLS should use this
as the default dispatch method.
@ -198,12 +195,11 @@ the assembly source file different implementations of the macro are
selected based on the defined preprocessor variables. The assembly code
then consists of a series of invocations of the macros such as:
::
.. code-block:: c
:caption: SPARC Assembly Implementation of ``glColor3fv``
GL_STUB(Color3fv, _gloffset_Color3fv)
SPARC Assembly Implementation of ``glColor3fv``
The benefit of this technique is that changes to the calling pattern
(i.e., addition of a new dispatch table pointer access method) require
fewer changed lines in the assembly code.