mesa: Create pointers for multithread marshalling dispatch table.

This patch splits the context's CurrentDispatch pointer into two
pointers, CurrentClientDispatch, and CurrentServerDispatch, so that
when doing multithread marshalling, we can distinguish between the
dispatch table that's being used by the client (to serialize GL calls
into the marshal buffer) and the dispatch table that's being used by
the server (to execute the GL calls).

Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Acked-by: Marek Olšák <maraeo@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Tested-by: Mike Lothian <mike@fireburn.co.uk>
This commit is contained in:
Paul Berry
2012-10-03 15:39:52 -07:00
committed by Timothy Arceri
parent d8d81fbc31
commit ef30ce97a6
8 changed files with 69 additions and 34 deletions
+4 -4
View File
@@ -133,11 +133,11 @@ class PrintGlOffsets(gl_XML.gl_print_base):
* #define KEYWORD1
* #define KEYWORD2
* #define NAME(func) gl##func
* #define DISPATCH(func, args, msg) \\
* struct _glapi_table *dispatch = CurrentDispatch; \\
* #define DISPATCH(func, args, msg) \\
* struct _glapi_table *dispatch = CurrentClientDispatch; \\
* (*dispatch->func) args
* #define RETURN DISPATCH(func, args, msg) \\
* struct _glapi_table *dispatch = CurrentDispatch; \\
* #define RETURN DISPATCH(func, args, msg) \\
* struct _glapi_table *dispatch = CurrentClientDispatch; \\
* return (*dispatch->func) args
*
*/