Mesa (master): mesa: fix GLES remap table setup again

Chia-I Wu olv at kemper.freedesktop.org
Wed Jun 8 15:19:44 UTC 2011


Module: Mesa
Branch: master
Commit: fed482f5e30ea6b230ed20982551b340570dc3e9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fed482f5e30ea6b230ed20982551b340570dc3e9

Author: Chia-I Wu <olv at lunarg.com>
Date:   Wed Jun  8 22:04:16 2011 +0800

mesa: fix GLES remap table setup again

Generate different glapidispatch.h's for GL and GLES.  For GLES, we want
a local remap table.

This reverts commit 5af46e836073d2112b147b524e441bdb808cc128.  The
commit will break GL remap table setup when main/glapidispatch.h is
regenerated.

---

 src/mapi/glapi/gen/gl_table.py |   22 +++++++++++++---------
 src/mesa/main/es_generator.py  |    5 +++--
 2 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/mapi/glapi/gen/gl_table.py b/src/mapi/glapi/gen/gl_table.py
index c3cc616..bd3f3eb 100644
--- a/src/mapi/glapi/gen/gl_table.py
+++ b/src/mapi/glapi/gen/gl_table.py
@@ -149,14 +149,18 @@ class PrintRemapTable(gl_XML.gl_print_base):
 		print '#else /* !_GLAPI_USE_REMAP_TABLE */'
 		print ''
 
-		print '#define driDispatchRemapTable_size %u' % (count)
-		print 'extern int driDispatchRemapTable[ driDispatchRemapTable_size ];'
-		print ''
-		print '#if FEATURE_remap_table'
-		print '#define driDispatchRemapTable remap_table'
-		print 'static int remap_table[driDispatchRemapTable_size];'
-		print '#endif'
-		print ''
+		if self.es:
+			remap_table = "esLocalRemapTable"
+
+			print '#define %s_size %u' % (remap_table, count)
+			print 'static int %s[ %s_size ];' % (remap_table, remap_table)
+			print ''
+		else:
+			remap_table = "driDispatchRemapTable"
+
+			print '#define %s_size %u' % (remap_table, count)
+			print 'extern int %s[ %s_size ];' % (remap_table, remap_table)
+			print ''
 
 		for f, index in functions:
 			print '#define %s_remap_index %u' % (f.name, index)
@@ -164,7 +168,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
 		print ''
 
 		for f, index in functions:
-			print '#define _gloffset_%s driDispatchRemapTable[%s_remap_index]' % (f.name, f.name)
+			print '#define _gloffset_%s %s[%s_remap_index]' % (f.name, remap_table, f.name)
 
 		print ''
 		print '#endif /* _GLAPI_USE_REMAP_TABLE */'
diff --git a/src/mesa/main/es_generator.py b/src/mesa/main/es_generator.py
index 87d8bd3..5b49416 100644
--- a/src/mesa/main/es_generator.py
+++ b/src/mesa/main/es_generator.py
@@ -680,6 +680,7 @@ print """
 
 #if FEATURE_remap_table
 
+/* define esLocalRemapTable */
 /* cannot include main/dispatch.h here */
 #define _GLAPI_USE_REMAP_TABLE
 #include "%sapi/main/glapidispatch.h"
@@ -701,7 +702,7 @@ init_remap_table(void)
       return;
    }
 
-   for (i = 0; i < driDispatchRemapTable_size; i++) {
+   for (i = 0; i < esLocalRemapTable_size; i++) {
       GLint offset;
       const char *spec;
 
@@ -710,7 +711,7 @@ init_remap_table(void)
       spec = _mesa_function_pool + remap[i].pool_index;
 
       offset = _mesa_map_function_spec(spec);
-      remap_table[i] = offset;
+      esLocalRemapTable[i] = offset;
    }
    initialized = GL_TRUE;
    _glthread_UNLOCK_MUTEX(mutex);




More information about the mesa-commit mailing list