aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Faye-Lund <erik.faye-lund@collabora.com>2019-05-06 14:18:23 +0200
committerMarge Bot <eric+marge@anholt.net>2020-06-13 10:42:00 +0000
commit7039310ae3933df6179a787746a4518d89bab8a8 (patch)
tree86fa631eff34525d936f7c8aee616a494ea568b1
parentdcaab1b311e7817eede82eacf18a8168f2f8475b (diff)
downloadmesa3d-7039310ae3933df6179a787746a4518d89bab8a8.tar.gz
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>
-rw-r--r--docs/dispatch.rst20
1 files changed, 8 insertions, 12 deletions
diff --git a/docs/dispatch.rst b/docs/dispatch.rst
index c7b0af37636..4fcce5ac88e 100644
--- a/docs/dispatch.rst
+++ b/docs/dispatch.rst
@@ -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.