diff options
author | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2019-05-06 14:18:23 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-06-13 10:42:00 +0000 |
commit | 7039310ae3933df6179a787746a4518d89bab8a8 (patch) | |
tree | 86fa631eff34525d936f7c8aee616a494ea568b1 | |
parent | dcaab1b311e7817eede82eacf18a8168f2f8475b (diff) | |
download | mesa3d-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.rst | 20 |
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. |