[Mesa-dev] [PATCH 4/6] mesa: add some of missing compatibility support for ARB_bindless_texture

Marek Olšák maraeo at gmail.com
Thu Feb 15 00:11:22 UTC 2018


From: Marek Olšák <marek.olsak at amd.com>

The extension is exposed in the compatibility profile.
---
 src/mapi/glapi/gen/apiexec.py | 2 +-
 src/mesa/main/api_loopback.c  | 8 ++++----
 src/mesa/main/vtxfmt.c        | 9 +++++----
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py
index 7da0818..b5e0ad4 100644
--- a/src/mapi/glapi/gen/apiexec.py
+++ b/src/mapi/glapi/gen/apiexec.py
@@ -284,12 +284,12 @@ functions = {
     "ProgramUniform1ui64ARB": exec_info(core=31),
     "ProgramUniform2ui64ARB": exec_info(core=31),
     "ProgramUniform3ui64ARB": exec_info(core=31),
     "ProgramUniform4ui64ARB": exec_info(core=31),
     "ProgramUniform1ui64vARB": exec_info(core=31),
     "ProgramUniform2ui64vARB": exec_info(core=31),
     "ProgramUniform3ui64vARB": exec_info(core=31),
     "ProgramUniform4ui64vARB": exec_info(core=31),
 
     # GL_ARB_bindless_texture
-    "GetVertexAttribLui64vARB": exec_info(core=31),
+    "GetVertexAttribLui64vARB": exec_info(compatibility=30, core=31),
 }
diff --git a/src/mesa/main/api_loopback.c b/src/mesa/main/api_loopback.c
index b552d17..4eab811 100644
--- a/src/mesa/main/api_loopback.c
+++ b/src/mesa/main/api_loopback.c
@@ -1783,29 +1783,29 @@ _mesa_loopback_init_api_table(const struct gl_context *ctx,
       SET_VertexAttrib4Niv(dest, _mesa_VertexAttrib4Niv);
       SET_VertexAttrib4Nuiv(dest, _mesa_VertexAttrib4Nuiv);
 
       /* GL_EXT_gpu_shader4, GL 3.0 */
       SET_VertexAttribI1iv(dest, _mesa_VertexAttribI1iv);
       SET_VertexAttribI1uiv(dest, _mesa_VertexAttribI1uiv);
       SET_VertexAttribI4bv(dest, _mesa_VertexAttribI4bv);
       SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv);
       SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv);
       SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv);
+
+      /* GL_ARB_bindless_texture */
+      SET_VertexAttribL1ui64ARB(dest, _mesa_VertexAttribL1ui64ARB);
+      SET_VertexAttribL1ui64vARB(dest, _mesa_VertexAttribL1ui64vARB);
    }
 
    if (ctx->API == API_OPENGL_CORE) {
       /* GL 4.1 / GL_ARB_vertex_attrib_64bit */
       SET_VertexAttribL1d(dest, _mesa_VertexAttribL1d);
       SET_VertexAttribL2d(dest, _mesa_VertexAttribL2d);
       SET_VertexAttribL3d(dest, _mesa_VertexAttribL3d);
       SET_VertexAttribL4d(dest, _mesa_VertexAttribL4d);
 
       SET_VertexAttribL1dv(dest, _mesa_VertexAttribL1dv);
       SET_VertexAttribL2dv(dest, _mesa_VertexAttribL2dv);
       SET_VertexAttribL3dv(dest, _mesa_VertexAttribL3dv);
       SET_VertexAttribL4dv(dest, _mesa_VertexAttribL4dv);
-
-      /* GL_ARB_bindless_texture */
-      SET_VertexAttribL1ui64ARB(dest, _mesa_VertexAttribL1ui64ARB);
-      SET_VertexAttribL1ui64vARB(dest, _mesa_VertexAttribL1ui64vARB);
    }
 }
diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c
index 293a385..61629a4 100644
--- a/src/mesa/main/vtxfmt.c
+++ b/src/mesa/main/vtxfmt.c
@@ -198,36 +198,37 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
    if (_mesa_is_desktop_gl(ctx)) {
       SET_VertexAttribP1ui(tab, vfmt->VertexAttribP1ui);
       SET_VertexAttribP2ui(tab, vfmt->VertexAttribP2ui);
       SET_VertexAttribP3ui(tab, vfmt->VertexAttribP3ui);
       SET_VertexAttribP4ui(tab, vfmt->VertexAttribP4ui);
 
       SET_VertexAttribP1uiv(tab, vfmt->VertexAttribP1uiv);
       SET_VertexAttribP2uiv(tab, vfmt->VertexAttribP2uiv);
       SET_VertexAttribP3uiv(tab, vfmt->VertexAttribP3uiv);
       SET_VertexAttribP4uiv(tab, vfmt->VertexAttribP4uiv);
+
+      /* GL_ARB_bindless_texture */
+      SET_VertexAttribL1ui64ARB(tab, vfmt->VertexAttribL1ui64ARB);
+      SET_VertexAttribL1ui64vARB(tab, vfmt->VertexAttribL1ui64vARB);
    }
 
    if (ctx->API == API_OPENGL_CORE) {
+      /* GL_ARB_vertex_attrib_64bit */
       SET_VertexAttribL1d(tab, vfmt->VertexAttribL1d);
       SET_VertexAttribL2d(tab, vfmt->VertexAttribL2d);
       SET_VertexAttribL3d(tab, vfmt->VertexAttribL3d);
       SET_VertexAttribL4d(tab, vfmt->VertexAttribL4d);
 
       SET_VertexAttribL1dv(tab, vfmt->VertexAttribL1dv);
       SET_VertexAttribL2dv(tab, vfmt->VertexAttribL2dv);
       SET_VertexAttribL3dv(tab, vfmt->VertexAttribL3dv);
       SET_VertexAttribL4dv(tab, vfmt->VertexAttribL4dv);
-
-      /* GL_ARB_bindless_texture */
-      SET_VertexAttribL1ui64ARB(tab, vfmt->VertexAttribL1ui64ARB);
-      SET_VertexAttribL1ui64vARB(tab, vfmt->VertexAttribL1ui64vARB);
    }
 }
 
 
 /**
  * Install per-vertex functions into the API dispatch table for execution.
  */
 void
 _mesa_install_exec_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt)
 {
-- 
2.7.4



More information about the mesa-dev mailing list