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

View File

@@ -64,7 +64,8 @@ conceptually simple:
This can be implemented in just a few lines of C code. The file 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. ``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) 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); (*dispatch->Vertex3f)(x, y, z);
} }
Sample dispatch function
The problem with this simple implementation is the large amount of The problem with this simple implementation is the large amount of
overhead that it adds to every GL function call. 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 but it avoids the expensive ``pthread_getspecific`` call in the common
case. case.
:: .. code-block:: c
:caption: Improved ``GET_DISPATCH`` Implementation
#define GET_DISPATCH() \ #define GET_DISPATCH() \
(_glapi_Dispatch != NULL) \ (_glapi_Dispatch != NULL) \
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key) ? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
Improved ``GET_DISPATCH`` Implementation
3.2. ELF TLS 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 pointer is properly declared, ``GET_DISPACH`` becomes a simple variable
reference. reference.
:: .. code-block:: c
:caption: TLS ``GET_DISPATCH`` Implementation
extern __thread struct _glapi_table *_glapi_tls_Dispatch extern __thread struct _glapi_table *_glapi_tls_Dispatch
__attribute__((tls_model("initial-exec"))); __attribute__((tls_model("initial-exec")));
#define GET_DISPATCH() _glapi_tls_Dispatch #define GET_DISPATCH() _glapi_tls_Dispatch
TLS ``GET_DISPATCH`` Implementation
Use of this path is controlled by the preprocessor define Use of this path is controlled by the preprocessor define
``USE_ELF_TLS``. Any platform capable of using ELF TLS should use this ``USE_ELF_TLS``. Any platform capable of using ELF TLS should use this
as the default dispatch method. 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 selected based on the defined preprocessor variables. The assembly code
then consists of a series of invocations of the macros such as: 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) GL_STUB(Color3fv, _gloffset_Color3fv)
SPARC Assembly Implementation of ``glColor3fv``
The benefit of this technique is that changes to the calling pattern The benefit of this technique is that changes to the calling pattern
(i.e., addition of a new dispatch table pointer access method) require (i.e., addition of a new dispatch table pointer access method) require
fewer changed lines in the assembly code. fewer changed lines in the assembly code.