Переглянути джерело

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>
tags/11.0-branchpoint
Ian Romanick 10 роки тому
джерело
коміт
2b8c51834b

+ 3
- 0
src/mesa/main/api_exec.h Переглянути файл

@@ -38,6 +38,9 @@ _mesa_initialize_exec_table(struct gl_context *ctx);
extern void
_mesa_initialize_dispatch_tables(struct gl_context *ctx);

extern struct _glapi_table *
_mesa_new_nop_table(unsigned numEntries);

#ifdef __cplusplus
} // extern "C"
#endif

+ 8
- 8
src/mesa/main/context.c Переглянути файл

@@ -962,12 +962,12 @@ generic_nop(void)
* the __stdcall convention which requires the callee to clean up the
* call stack. That's impossible with one generic no-op function.
*/
#if !USE_GLAPI_NOP_FEATURES
static struct _glapi_table *
new_nop_table(unsigned numEntries)
struct _glapi_table *
_mesa_new_nop_table(unsigned numEntries)
{
struct _glapi_table *table;

#if !USE_GLAPI_NOP_FEATURES
table = malloc(numEntries * sizeof(_glapi_proc));
if (table) {
_glapi_proc *entry = (_glapi_proc *) table;
@@ -976,9 +976,11 @@ new_nop_table(unsigned numEntries)
entry[i] = (_glapi_proc) generic_nop;
}
}
#else
table = _glapi_new_nop_table(numEntries);
#endif
return table;
}
#endif


/**
@@ -996,10 +998,7 @@ alloc_dispatch_table(void)
*/
int numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);

#if !USE_GLAPI_NOP_FEATURES
struct _glapi_table *table = new_nop_table(numEntries);
#else
struct _glapi_table *table = _glapi_new_nop_table(numEntries);
struct _glapi_table *table = _mesa_new_nop_table(numEntries);

#if defined(_WIN32)
if (table) {
@@ -1023,6 +1022,7 @@ alloc_dispatch_table(void)
}
#endif

#if USE_GLAPI_NOP_FEATURES
_glapi_set_nop_handler(nop_handler);
#endif


+ 1
- 1
src/mesa/main/tests/dispatch_sanity.cpp Переглянути файл

@@ -96,7 +96,7 @@ DispatchSanity_test::SetUp()
_mesa_init_driver_functions(&driver_functions);

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

Завантаження…
Відмінити
Зберегти