glapi: Encapsulate nop table knowledge in new _mesa_new_nop_table function
Encapsulate the knowledge about how to build the nop table in a new _mesa_new_nop_table function. This makes it easier for dispatch_sanity to keep working now and in the future. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Mark Janes <mark.a.janes@intel.com> Cc: 10.6 <mesa-stable@lists.freedesktop.org>
This commit is contained in:
@@ -38,6 +38,9 @@ _mesa_initialize_exec_table(struct gl_context *ctx);
|
|||||||
extern void
|
extern void
|
||||||
_mesa_initialize_dispatch_tables(struct gl_context *ctx);
|
_mesa_initialize_dispatch_tables(struct gl_context *ctx);
|
||||||
|
|
||||||
|
extern struct _glapi_table *
|
||||||
|
_mesa_new_nop_table(unsigned numEntries);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#endif
|
||||||
|
@@ -962,12 +962,12 @@ generic_nop(void)
|
|||||||
* the __stdcall convention which requires the callee to clean up the
|
* the __stdcall convention which requires the callee to clean up the
|
||||||
* call stack. That's impossible with one generic no-op function.
|
* call stack. That's impossible with one generic no-op function.
|
||||||
*/
|
*/
|
||||||
#if !USE_GLAPI_NOP_FEATURES
|
struct _glapi_table *
|
||||||
static struct _glapi_table *
|
_mesa_new_nop_table(unsigned numEntries)
|
||||||
new_nop_table(unsigned numEntries)
|
|
||||||
{
|
{
|
||||||
struct _glapi_table *table;
|
struct _glapi_table *table;
|
||||||
|
|
||||||
|
#if !USE_GLAPI_NOP_FEATURES
|
||||||
table = malloc(numEntries * sizeof(_glapi_proc));
|
table = malloc(numEntries * sizeof(_glapi_proc));
|
||||||
if (table) {
|
if (table) {
|
||||||
_glapi_proc *entry = (_glapi_proc *) table;
|
_glapi_proc *entry = (_glapi_proc *) table;
|
||||||
@@ -976,9 +976,11 @@ new_nop_table(unsigned numEntries)
|
|||||||
entry[i] = (_glapi_proc) generic_nop;
|
entry[i] = (_glapi_proc) generic_nop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
table = _glapi_new_nop_table(numEntries);
|
||||||
|
#endif
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -996,10 +998,7 @@ alloc_dispatch_table(void)
|
|||||||
*/
|
*/
|
||||||
int numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);
|
int numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);
|
||||||
|
|
||||||
#if !USE_GLAPI_NOP_FEATURES
|
struct _glapi_table *table = _mesa_new_nop_table(numEntries);
|
||||||
struct _glapi_table *table = new_nop_table(numEntries);
|
|
||||||
#else
|
|
||||||
struct _glapi_table *table = _glapi_new_nop_table(numEntries);
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
if (table) {
|
if (table) {
|
||||||
@@ -1023,6 +1022,7 @@ alloc_dispatch_table(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if USE_GLAPI_NOP_FEATURES
|
||||||
_glapi_set_nop_handler(nop_handler);
|
_glapi_set_nop_handler(nop_handler);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -96,7 +96,7 @@ DispatchSanity_test::SetUp()
|
|||||||
_mesa_init_driver_functions(&driver_functions);
|
_mesa_init_driver_functions(&driver_functions);
|
||||||
|
|
||||||
const unsigned size = _glapi_get_dispatch_table_size();
|
const unsigned size = _glapi_get_dispatch_table_size();
|
||||||
nop_table = (_glapi_proc *) _glapi_new_nop_table(size);
|
nop_table = (_glapi_proc *) _mesa_new_nop_table(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Reference in New Issue
Block a user