mesa: Move references to main/remap_helper.h to api_exec.c
This commit is contained in:
parent
fa41610630
commit
1741ddb747
|
@ -209,6 +209,32 @@ extern void _mesa_error(void *ctx, GLenum error, const char *fmtString, ... );
|
|||
|
||||
#include "main/dispatch.h"
|
||||
|
||||
#if FEATURE_remap_table
|
||||
|
||||
#include "main/remap.h"
|
||||
|
||||
#ifdef IN_DRI_DRIVER
|
||||
#define _GLAPI_USE_REMAP_TABLE
|
||||
#endif
|
||||
|
||||
#define need_MESA_remap_table
|
||||
#include "main/remap_helper.h"
|
||||
|
||||
void
|
||||
_mesa_init_remap_table(void)
|
||||
{
|
||||
_mesa_do_init_remap_table(_mesa_function_pool,
|
||||
driDispatchRemapTable_size,
|
||||
MESA_remap_table_functions);
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_map_static_functions(void)
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
typedef void (*_glapi_proc)(void); /* generic function pointer */
|
||||
"""
|
||||
|
||||
|
|
|
@ -65,17 +65,12 @@ class PrintGlRemap(gl_XML.gl_print_base):
|
|||
|
||||
def printRealHeader(self):
|
||||
print '#include "main/dispatch.h"'
|
||||
print '#include "main/remap.h"'
|
||||
print ''
|
||||
return
|
||||
|
||||
|
||||
def printBody(self, api):
|
||||
print 'struct gl_function_remap {'
|
||||
print ' GLint func_index;'
|
||||
print ' GLint dispatch_offset; /* for sanity check */'
|
||||
print '};'
|
||||
print ''
|
||||
|
||||
pool_indices = {}
|
||||
|
||||
print '/* this is internal to remap.c */'
|
||||
|
@ -108,10 +103,7 @@ class PrintGlRemap(gl_XML.gl_print_base):
|
|||
print ''
|
||||
|
||||
print '/* these functions need to be remapped */'
|
||||
print 'static const struct {'
|
||||
print ' GLint pool_index;'
|
||||
print ' GLint remap_index;'
|
||||
print '} MESA_remap_table_functions[] = {'
|
||||
print 'static const struct gl_function_pool_remap MESA_remap_table_functions[] = {'
|
||||
# output all functions that need to be remapped
|
||||
# iterate by offsets so that they are sorted by remap indices
|
||||
for f in api.functionIterateByOffset():
|
||||
|
|
|
@ -107,6 +107,40 @@
|
|||
#endif
|
||||
#include "main/dispatch.h"
|
||||
|
||||
#define need_MESA_remap_table
|
||||
#include "main/remap.h"
|
||||
#include "main/remap_helper.h"
|
||||
|
||||
/* This is shared across all APIs but We define this here since
|
||||
* desktop GL has the biggest remap table. */
|
||||
int driDispatchRemapTable[driDispatchRemapTable_size];
|
||||
|
||||
/**
|
||||
* Map the functions which are already static.
|
||||
*
|
||||
* When a extension function are incorporated into the ABI, the
|
||||
* extension suffix is usually stripped. Mapping such functions
|
||||
* makes sure the alternative names are available.
|
||||
*
|
||||
* Note that functions mapped by _mesa_init_remap_table() are
|
||||
* excluded.
|
||||
*/
|
||||
void
|
||||
_mesa_map_static_functions(void)
|
||||
{
|
||||
/* Remap static functions which have alternative names and are in the ABI.
|
||||
* This is to be on the safe side. glapi should have defined those names.
|
||||
*/
|
||||
_mesa_map_function_array(MESA_alt_functions);
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_init_remap_table(void)
|
||||
{
|
||||
_mesa_do_init_remap_table(_mesa_function_pool,
|
||||
driDispatchRemapTable_size,
|
||||
MESA_remap_table_functions);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -38,23 +38,15 @@
|
|||
|
||||
#include "remap.h"
|
||||
#include "imports.h"
|
||||
|
||||
#include "main/dispatch.h"
|
||||
|
||||
#include "glapi/glapi.h"
|
||||
|
||||
#if FEATURE_remap_table
|
||||
|
||||
|
||||
#define need_MESA_remap_table
|
||||
#include "main/remap_helper.h"
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
#define MAX_ENTRY_POINTS 16
|
||||
|
||||
|
||||
/* this is global for quick access */
|
||||
int driDispatchRemapTable[driDispatchRemapTable_size];
|
||||
|
||||
static const char *_mesa_function_pool;
|
||||
|
||||
/**
|
||||
* Return the spec string associated with the given function index.
|
||||
|
@ -67,10 +59,7 @@ int driDispatchRemapTable[driDispatchRemapTable_size];
|
|||
const char *
|
||||
_mesa_get_function_spec(GLint func_index)
|
||||
{
|
||||
if (func_index < ARRAY_SIZE(_mesa_function_pool))
|
||||
return _mesa_function_pool + func_index;
|
||||
else
|
||||
return NULL;
|
||||
return _mesa_function_pool + func_index;
|
||||
}
|
||||
|
||||
|
||||
|
@ -161,33 +150,15 @@ _mesa_map_function_array(const struct gl_function_remap *func_array)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Map the functions which are already static.
|
||||
*
|
||||
* When a extension function are incorporated into the ABI, the
|
||||
* extension suffix is usually stripped. Mapping such functions
|
||||
* makes sure the alternative names are available.
|
||||
*
|
||||
* Note that functions mapped by _mesa_init_remap_table() are
|
||||
* excluded.
|
||||
*/
|
||||
void
|
||||
_mesa_map_static_functions(void)
|
||||
{
|
||||
/* Remap static functions which have alternative names and are in the ABI.
|
||||
* This is to be on the safe side. glapi should have defined those names.
|
||||
*/
|
||||
_mesa_map_function_array(MESA_alt_functions);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize the remap table. This is called in one_time_init().
|
||||
* The remap table needs to be initialized before calling the
|
||||
* CALL/GET/SET macros defined in main/dispatch.h.
|
||||
*/
|
||||
void
|
||||
_mesa_init_remap_table(void)
|
||||
_mesa_do_init_remap_table(const char *pool,
|
||||
int size,
|
||||
const struct gl_function_pool_remap *remap)
|
||||
{
|
||||
static GLboolean initialized = GL_FALSE;
|
||||
GLint i;
|
||||
|
@ -195,15 +166,16 @@ _mesa_init_remap_table(void)
|
|||
if (initialized)
|
||||
return;
|
||||
initialized = GL_TRUE;
|
||||
_mesa_function_pool = pool;
|
||||
|
||||
/* initialize the remap table */
|
||||
for (i = 0; i < ARRAY_SIZE(driDispatchRemapTable); i++) {
|
||||
for (i = 0; i < size; i++) {
|
||||
GLint offset;
|
||||
const char *spec;
|
||||
|
||||
/* sanity check */
|
||||
ASSERT(i == MESA_remap_table_functions[i].remap_index);
|
||||
spec = _mesa_function_pool + MESA_remap_table_functions[i].pool_index;
|
||||
ASSERT(i == remap[i].remap_index);
|
||||
spec = _mesa_function_pool + remap[i].pool_index;
|
||||
|
||||
offset = _mesa_map_function_spec(spec);
|
||||
/* store the dispatch offset in the remap table */
|
||||
|
|
|
@ -28,9 +28,17 @@
|
|||
#define REMAP_H
|
||||
|
||||
|
||||
#include "main/mtypes.h"
|
||||
#include "main/mfeatures.h"
|
||||
|
||||
struct gl_function_remap;
|
||||
struct gl_function_pool_remap {
|
||||
int pool_index;
|
||||
int remap_index;
|
||||
};
|
||||
|
||||
struct gl_function_remap {
|
||||
int func_index;
|
||||
int dispatch_offset; /* for sanity check */
|
||||
};
|
||||
|
||||
|
||||
#if FEATURE_remap_table
|
||||
|
@ -39,9 +47,9 @@ extern int
|
|||
driDispatchRemapTable[];
|
||||
|
||||
extern const char *
|
||||
_mesa_get_function_spec(GLint func_index);
|
||||
_mesa_get_function_spec(int func_index);
|
||||
|
||||
extern GLint
|
||||
extern int
|
||||
_mesa_map_function_spec(const char *spec);
|
||||
|
||||
extern void
|
||||
|
@ -50,18 +58,23 @@ _mesa_map_function_array(const struct gl_function_remap *func_array);
|
|||
extern void
|
||||
_mesa_map_static_functions(void);
|
||||
|
||||
extern void
|
||||
_mesa_do_init_remap_table(const char *pool,
|
||||
int size,
|
||||
const struct gl_function_pool_remap *remap);
|
||||
|
||||
extern void
|
||||
_mesa_init_remap_table(void);
|
||||
|
||||
#else /* FEATURE_remap_table */
|
||||
|
||||
static INLINE const char *
|
||||
_mesa_get_function_spec(GLint func_index)
|
||||
_mesa_get_function_spec(int func_index)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static INLINE GLint
|
||||
static INLINE int
|
||||
_mesa_map_function_spec(const char *spec)
|
||||
{
|
||||
return -1;
|
||||
|
@ -77,6 +90,13 @@ _mesa_map_static_functions(void)
|
|||
{
|
||||
}
|
||||
|
||||
static INLINE void
|
||||
_mesa_do_init_remap_table(const char *pool,
|
||||
int size,
|
||||
const struct gl_function_pool_remap *remap)
|
||||
{
|
||||
}
|
||||
|
||||
static INLINE void
|
||||
_mesa_init_remap_table(void)
|
||||
{
|
||||
|
|
|
@ -26,11 +26,7 @@
|
|||
*/
|
||||
|
||||
#include "main/dispatch.h"
|
||||
|
||||
struct gl_function_remap {
|
||||
GLint func_index;
|
||||
GLint dispatch_offset; /* for sanity check */
|
||||
};
|
||||
#include "main/remap.h"
|
||||
|
||||
/* this is internal to remap.c */
|
||||
#ifdef need_MESA_remap_table
|
||||
|
@ -4427,10 +4423,7 @@ static const char _mesa_function_pool[] =
|
|||
;
|
||||
|
||||
/* these functions need to be remapped */
|
||||
static const struct {
|
||||
GLint pool_index;
|
||||
GLint remap_index;
|
||||
} MESA_remap_table_functions[] = {
|
||||
static const struct gl_function_pool_remap MESA_remap_table_functions[] = {
|
||||
{ 1461, AttachShader_remap_index },
|
||||
{ 8848, CreateProgram_remap_index },
|
||||
{ 20883, CreateShader_remap_index },
|
||||
|
|
Loading…
Reference in New Issue