<div dir="ltr">Does this pass "make check"?  You didn't update the dispatch_sanity test so I'm guessing no.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 17, 2015 at 3:27 AM, Tapani Pälli <span dir="ltr"><<a href="mailto:tapani.palli@intel.com" target="_blank">tapani.palli@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by: Tapani Pälli <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>><br>
---<br>
 src/mapi/glapi/gen/ARB_program_interface_query.xml | 109 +++++++++++++++++++++<br>
 src/mapi/glapi/gen/gl_API.xml                      |   2 +<br>
 src/mapi/glapi/gen/gl_genexec.py                   |   1 +<br>
 src/mesa/Makefile.sources                          |   2 +<br>
 src/mesa/main/program_resource.c                   |  70 +++++++++++++<br>
 src/mesa/main/program_resource.h                   |  59 +++++++++++<br>
 6 files changed, 243 insertions(+)<br>
 create mode 100644 src/mapi/glapi/gen/ARB_program_interface_query.xml<br>
 create mode 100644 src/mesa/main/program_resource.c<br>
 create mode 100644 src/mesa/main/program_resource.h<br>
<br>
diff --git a/src/mapi/glapi/gen/ARB_program_interface_query.xml b/src/mapi/glapi/gen/ARB_program_interface_query.xml<br>
new file mode 100644<br>
index 0000000..c042dbd<br>
--- /dev/null<br>
+++ b/src/mapi/glapi/gen/ARB_program_interface_query.xml<br>
@@ -0,0 +1,109 @@<br>
+<?xml version="1.0"?><br>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd"><br>
+<br>
+<OpenGLAPI><br>
+<br>
+<category name="GL_ARB_program_interface_query" number="134"><br>
+<br>
+    <enum name="UNIFORM"                                         value="0x92E1"/><br>
+    <enum name="UNIFORM_BLOCK"                                   value="0x92E2"/><br>
+    <enum name="PROGRAM_INPUT"                                   value="0x92E3"/><br>
+    <enum name="PROGRAM_OUTPUT"                                  value="0x92E4"/><br>
+    <enum name="BUFFER_VARIABLE"                                 value="0x92E5"/><br>
+    <enum name="SHADER_STORAGE_BLOCK"                            value="0x92E6"/><br>
+    <enum name="ATOMIC_COUNTER_BUFFER"                           value="0x92C0"/><br>
+    <enum name="VERTEX_SUBROUTINE"                               value="0x92E8"/><br>
+    <enum name="TESS_CONTROL_SUBROUTINE"                         value="0x92E9"/><br>
+    <enum name="TESS_EVALUATION_SUBROUTINE"                      value="0x92EA"/><br>
+    <enum name="GEOMETRY_SUBROUTINE"                             value="0x92EB"/><br>
+    <enum name="FRAGMENT_SUBROUTINE"                             value="0x92EC"/><br>
+    <enum name="COMPUTE_SUBROUTINE"                              value="0x92ED"/><br>
+    <enum name="VERTEX_SUBROUTINE_UNIFORM"                       value="0x92EE"/><br>
+    <enum name="TESS_CONTROL_SUBROUTINE_UNIFORM"                 value="0x92EF"/><br>
+    <enum name="TESS_EVALUATION_SUBROUTINE_UNIFORM"              value="0x92F0"/><br>
+    <enum name="GEOMETRY_SUBROUTINE_UNIFORM"                     value="0x92F1"/><br>
+    <enum name="FRAGMENT_SUBROUTINE_UNIFORM"                     value="0x92F2"/><br>
+    <enum name="COMPUTE_SUBROUTINE_UNIFORM"                      value="0x92F3"/><br>
+    <enum name="TRANSFORM_FEEDBACK_VARYING"                      value="0x92F4"/><br>
+    <enum name="ACTIVE_RESOURCES"                                value="0x92F5"/><br>
+    <enum name="MAX_NAME_LENGTH"                                 value="0x92F6"/><br>
+    <enum name="MAX_NUM_ACTIVE_VARIABLES"                        value="0x92F7"/><br>
+    <enum name="MAX_NUM_COMPATIBLE_SUBROUTINES"                  value="0x92F8"/><br>
+    <enum name="NAME_LENGTH"                                     value="0x92F9"/><br>
+    <enum name="TYPE"                                            value="0x92FA"/><br>
+    <enum name="ARRAY_SIZE"                                      value="0x92FB"/><br>
+    <enum name="OFFSET"                                          value="0x92FC"/><br>
+    <enum name="BLOCK_INDEX"                                     value="0x92FD"/><br>
+    <enum name="ARRAY_STRIDE"                                    value="0x92FE"/><br>
+    <enum name="MATRIX_STRIDE"                                   value="0x92FF"/><br>
+    <enum name="IS_ROW_MAJOR"                                    value="0x9300"/><br>
+    <enum name="ATOMIC_COUNTER_BUFFER_INDEX"                     value="0x9301"/><br>
+    <enum name="BUFFER_BINDING"                                  value="0x9302"/><br>
+    <enum name="BUFFER_DATA_SIZE"                                value="0x9303"/><br>
+    <enum name="NUM_ACTIVE_VARIABLES"                            value="0x9304"/><br>
+    <enum name="ACTIVE_VARIABLES"                                value="0x9305"/><br>
+    <enum name="REFERENCED_BY_VERTEX_SHADER"                     value="0x9306"/><br>
+    <enum name="REFERENCED_BY_TESS_CONTROL_SHADER"               value="0x9307"/><br>
+    <enum name="REFERENCED_BY_TESS_EVALUATION_SHADER"            value="0x9308"/><br>
+    <enum name="REFERENCED_BY_GEOMETRY_SHADER"                   value="0x9309"/><br>
+    <enum name="REFERENCED_BY_FRAGMENT_SHADER"                   value="0x930A"/><br>
+    <enum name="REFERENCED_BY_COMPUTE_SHADER"                    value="0x930B"/><br>
+    <enum name="TOP_LEVEL_ARRAY_SIZE"                            value="0x930C"/><br>
+    <enum name="TOP_LEVEL_ARRAY_STRIDE"                          value="0x930D"/><br>
+    <enum name="LOCATION"                                        value="0x930E"/><br>
+    <enum name="LOCATION_INDEX"                                  value="0x930F"/><br>
+    <enum name="IS_PER_PATCH"                                    value="0x92E7"/><br>
+    <enum name="NUM_COMPATIBLE_SUBROUTINES"                      value="0x8E4A"/><br>
+    <enum name="COMPATIBLE_SUBROUTINES"                          value="0x8E4B"/><br>
+<br>
+    <function name="GetProgramInterfaceiv" offset="assign"><br>
+        <param name="program" type="GLuint"/><br>
+        <param name="programInterface" type="GLenum"/><br>
+        <param name="pname" type="GLenum"/><br>
+        <param name="params" type="GLintptr"/><br>
+    </function><br>
+<br>
+    <function name="GetProgramResourceIndex" offset="assign"><br>
+        <param name="program" type="GLuint"/><br>
+        <param name="programInterface" type="GLenum"/><br>
+        <param name="name" type="const GLchar *"/><br>
+        <return type="GLuint"/><br>
+    </function><br>
+<br>
+    <function name="GetProgramResourceName" offset="assign"><br>
+        <param name="program" type="GLuint"/><br>
+        <param name="programInterface" type="GLenum"/><br>
+        <param name="index" type="GLuint"/><br>
+        <param name="bufSize" type="GLsizei "/><br>
+        <param name="length" type="GLsizei *" output="true"/><br>
+        <param name="name" type="const GLchar *" output="true"/><br>
+    </function><br>
+<br>
+    <function name="GetProgramResourceiv" offset="assign"><br>
+        <param name="program" type="GLuint"/><br>
+        <param name="programInterface" type="GLenum"/><br>
+        <param name="index" type="GLuint"/><br>
+        <param name="propCount" type="GLsizei "/><br>
+        <param name="props" type="const GLenum *" output="true"/><br>
+        <param name="bufSize" type="GLsizei "/><br>
+        <param name="length" type="GLsizei *" output="true"/><br>
+        <param name="params" type="GLintptr" output="true"/><br>
+    </function><br>
+<br>
+    <function name="GetProgramResourceLocation" offset="assign"><br>
+        <param name="program" type="GLuint"/><br>
+        <param name="programInterface" type="GLenum"/><br>
+        <param name="name" type="const GLchar *"/><br>
+        <return type="GLint"/><br>
+    </function><br>
+<br>
+    <function name="GetProgramResourceLocationIndex" offset="assign"><br>
+        <param name="program" type="GLuint"/><br>
+        <param name="programInterface" type="GLenum"/><br>
+        <param name="name" type="const GLchar *"/><br>
+        <return type="GLint"/><br>
+    </function><br>
+<br>
+</category><br>
+<br>
+</OpenGLAPI><br>
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml<br>
index 17bf62a..0c20b99 100644<br>
--- a/src/mapi/glapi/gen/gl_API.xml<br>
+++ b/src/mapi/glapi/gen/gl_API.xml<br>
@@ -8337,6 +8337,8 @@<br>
<br>
 <!-- ARB extensions #134...#138 --><br>
<br>
+<xi:include href="ARB_program_interface_query.xml" xmlns:xi="<a href="http://www.w3.org/2001/XInclude" target="_blank">http://www.w3.org/2001/XInclude</a>"/><br>
+<br>
 <xi:include href="ARB_texture_buffer_range.xml" xmlns:xi="<a href="http://www.w3.org/2001/XInclude" target="_blank">http://www.w3.org/2001/XInclude</a>"/><br>
<br>
 <!-- 140. GL_ARB_texture_query_levels --><br>
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py<br>
index d479e66..7151f0d 100644<br>
--- a/src/mapi/glapi/gen/gl_genexec.py<br>
+++ b/src/mapi/glapi/gen/gl_genexec.py<br>
@@ -92,6 +92,7 @@ header = """/**<br>
 #include "main/pixelstore.h"<br>
 #include "main/points.h"<br>
 #include "main/polygon.h"<br>
+#include "main/program_resource.h"<br>
 #include "main/querymatrix.h"<br>
 #include "main/queryobj.h"<br>
 #include "main/readpix.h"<br>
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources<br>
index b5912b7..df535fc 100644<br>
--- a/src/mesa/Makefile.sources<br>
+++ b/src/mesa/Makefile.sources<br>
@@ -158,6 +158,8 @@ MAIN_FILES = \<br>
        main/rastpos.c \<br>
        main/rastpos.h \<br>
        main/readpix.c \<br>
+       main/program_resource.c \<br>
+       main/program_resource.h \<br>
        main/readpix.h \<br>
        main/remap.c \<br>
        main/remap.h \<br>
diff --git a/src/mesa/main/program_resource.c b/src/mesa/main/program_resource.c<br>
new file mode 100644<br>
index 0000000..a5b114b<br>
--- /dev/null<br>
+++ b/src/mesa/main/program_resource.c<br>
@@ -0,0 +1,70 @@<br>
+/*<br>
+ * Mesa 3-D graphics library<br>
+ *<br>
+ * Copyright (C) 2015 Intel Corporation.  All Rights Reserved.<br>
+ *<br>
+ * Permission is hereby granted, free of charge, to any person obtaining a<br>
+ * copy of this software and associated documentation files (the "Software"),<br>
+ * to deal in the Software without restriction, including without limitation<br>
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
+ * and/or sell copies of the Software, and to permit persons to whom the<br>
+ * Software is furnished to do so, subject to the following conditions:<br>
+ *<br>
+ * The above copyright notice and this permission notice shall be included<br>
+ * in all copies or substantial portions of the Software.<br>
+ *<br>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS<br>
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL<br>
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR<br>
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,<br>
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br>
+ * OTHER DEALINGS IN THE SOFTWARE.<br>
+ *<br>
+ */<br>
+<br>
+#include "program_resource.h"<br>
+<br>
+void GLAPIENTRY<br>
+_mesa_GetProgramInterfaceiv(GLuint program, GLenum programInterface,<br>
+                            GLenum pname, GLintptr params)<br>
+{<br>
+}<br>
+<br>
+GLuint GLAPIENTRY<br>
+_mesa_GetProgramResourceIndex(GLuint program, GLenum programInterface,<br>
+                              const GLchar *name)<br>
+{<br>
+   return 0;<br>
+}<br>
+<br>
+void GLAPIENTRY<br>
+_mesa_GetProgramResourceName(GLuint program, GLenum programInterface,<br>
+                             GLuint index, GLsizei bufSize, GLsizei *length,<br>
+                             const GLchar *name)<br>
+{<br>
+   *length = 0;<br>
+}<br>
+<br>
+void GLAPIENTRY<br>
+_mesa_GetProgramResourceiv(GLuint program, GLenum programInterface,<br>
+                           GLuint index, GLsizei propCount,<br>
+                           const GLenum *props, GLsizei bufSize,<br>
+                           GLsizei *length, GLintptr params)<br>
+{<br>
+   *length = 0;<br>
+}<br>
+<br>
+GLint GLAPIENTRY<br>
+_mesa_GetProgramResourceLocation(GLuint program, GLenum programInterface,<br>
+                                 const GLchar *name)<br>
+{<br>
+   return -1;<br>
+}<br>
+<br>
+GLint GLAPIENTRY<br>
+_mesa_GetProgramResourceLocationIndex(GLuint program, GLenum programInterface,<br>
+                                      const GLchar *name)<br>
+{<br>
+   return -1;<br>
+}<br>
diff --git a/src/mesa/main/program_resource.h b/src/mesa/main/program_resource.h<br>
new file mode 100644<br>
index 0000000..edac3a3<br>
--- /dev/null<br>
+++ b/src/mesa/main/program_resource.h<br>
@@ -0,0 +1,59 @@<br>
+/*<br>
+ * Mesa 3-D graphics library<br>
+ *<br>
+ * Copyright (C) 2015 Intel Corporation.  All Rights Reserved.<br>
+ *<br>
+ * Permission is hereby granted, free of charge, to any person obtaining a<br>
+ * copy of this software and associated documentation files (the "Software"),<br>
+ * to deal in the Software without restriction, including without limitation<br>
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
+ * and/or sell copies of the Software, and to permit persons to whom the<br>
+ * Software is furnished to do so, subject to the following conditions:<br>
+ *<br>
+ * The above copyright notice and this permission notice shall be included<br>
+ * in all copies or substantial portions of the Software.<br>
+ *<br>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS<br>
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL<br>
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR<br>
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,<br>
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br>
+ * OTHER DEALINGS IN THE SOFTWARE.<br>
+ *<br>
+ */<br>
+<br>
+#ifndef PROGRAM_RESOURCE_H<br>
+#define PROGRAM_RESOURCE_H<br>
+<br>
+#include "glheader.h"<br>
+<br>
+struct gl_context;<br>
+<br>
+extern void GLAPIENTRY<br>
+_mesa_GetProgramInterfaceiv(GLuint program, GLenum programInterface,<br>
+                            GLenum pname, GLintptr params);<br>
+<br>
+extern GLuint GLAPIENTRY<br>
+_mesa_GetProgramResourceIndex(GLuint program, GLenum programInterface,<br>
+                              const GLchar *name);<br>
+<br>
+extern void GLAPIENTRY<br>
+_mesa_GetProgramResourceName(GLuint program, GLenum programInterface,<br>
+                             GLuint index, GLsizei bufSize, GLsizei *length,<br>
+                             const GLchar *name);<br>
+extern void GLAPIENTRY<br>
+_mesa_GetProgramResourceiv(GLuint program, GLenum programInterface,<br>
+                           GLuint index, GLsizei propCount,<br>
+                           const GLenum *props, GLsizei bufSize,<br>
+                           GLsizei *length, GLintptr params);<br>
+<br>
+extern GLint GLAPIENTRY<br>
+_mesa_GetProgramResourceLocation(GLuint program, GLenum programInterface,<br>
+                                 const GLchar *name);<br>
+<br>
+extern GLint GLAPIENTRY<br>
+_mesa_GetProgramResourceLocationIndex(GLuint program, GLenum programInterface,<br>
+                                      const GLchar *name);<br>
+<br>
+#endif<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.1.0<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>