<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 16, 2015 at 6:14 AM, Martin Peres <span dir="ltr"><<a href="mailto:martin.peres@linux.intel.com" target="_blank">martin.peres@linux.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: Martin Peres <<a href="mailto:martin.peres@linux.intel.com">martin.peres@linux.intel.com</a>><br>
---<br>
 src/mapi/glapi/gen/ARB_direct_state_access.xml |  6 +++<br>
 src/mesa/main/fbobject.c                       | 53 +++++++++++++++++++-------<br>
 src/mesa/main/fbobject.h                       |  4 ++<br>
 src/mesa/main/tests/dispatch_sanity.cpp        |  1 +<br>
 4 files changed, 50 insertions(+), 14 deletions(-)<br>
<br>
diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml<br>
index 8c9ddbb..144c891 100644<br>
--- a/src/mapi/glapi/gen/ARB_direct_state_access.xml<br>
+++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml<br>
@@ -55,6 +55,12 @@<br>
       <param name="renderbuffers" type="GLuint *" /><br>
    </function><br>
<br>
+   <function name="GetNamedRenderbufferParameteriv" offset="assign"><br>
+      <param name="renderbuffer" type="GLuint" /><br>
+      <param name="pname" type="GLenum" /><br>
+      <param name="params" type="GLint *" /><br>
+   </function><br>
+<br>
    <!-- Texture object functions --><br>
<br>
    <function name="CreateTextures" offset="assign"><br>
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c<br>
index c93e188..c2ea59c 100644<br>
--- a/src/mesa/main/fbobject.c<br>
+++ b/src/mesa/main/fbobject.c<br>
@@ -1980,22 +1980,15 @@ _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,<br>
 }<br>
<br>
<br>
-void GLAPIENTRY<br>
-_mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)<br>
+static void<br>
+get_render_buffer_parameteriv(struct gl_context *ctx,<br>
+                              struct gl_renderbuffer *rb, GLenum pname,<br>
+                              GLint *params, bool dsa)<br>
 {<br>
-   struct gl_renderbuffer *rb;<br>
-   GET_CURRENT_CONTEXT(ctx);<br>
-<br>
-   if (target != GL_RENDERBUFFER_EXT) {<br>
-      _mesa_error(ctx, GL_INVALID_ENUM,<br>
-                  "glGetRenderbufferParameterivEXT(target)");<br>
-      return;<br>
-   }<br>
-<br>
-   rb = ctx->CurrentRenderbuffer;<br>
+   const char *func = dsa ? "glGetNamedRenderbufferParameteriv" :<br>
+                            "glGetRenderbufferParameteriv";<br>
    if (!rb) {<br>
-      _mesa_error(ctx, GL_INVALID_OPERATION,<br>
-                  "glGetRenderbufferParameterivEXT");<br>
+      _mesa_error(ctx, GL_INVALID_OPERATION, "%s", func);<br>
       return;<br>
    }<br>
<br>
@@ -2030,9 +2023,41 @@ _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)<br>
       /* fallthrough */<br>
    default:<br>
       _mesa_error(ctx, GL_INVALID_ENUM,<br>
+                  "%s(target)", func);<br></blockquote><div>This error message was wrong in the original.  You should put something like "%s(invalid pname=%s", _mesa_lookup_enum_by_nr(pname) here, since this switch statement is for the pname and not the target. <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+      return;<br>
+   }<br>
+}<br>
+<br>
+<br>
+void GLAPIENTRY<br>
+_mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)<br>
+{<br>
+   GET_CURRENT_CONTEXT(ctx);<br>
+<br>
+   if (target != GL_RENDERBUFFER_EXT) {<br>
+      _mesa_error(ctx, GL_INVALID_ENUM,<br>
                   "glGetRenderbufferParameterivEXT(target)");<br>
       return;<br>
    }<br>
+<br>
+   get_render_buffer_parameteriv(ctx, ctx->CurrentRenderbuffer, pname,<br>
+                                 params, false);<br>
+}<br>
+<br>
+<br>
+void GLAPIENTRY<br>
+_mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,<br>
+                                      GLint *params)<br>
+{<br>
+   GET_CURRENT_CONTEXT(ctx);<br>
+<br></blockquote><div>FYI:  I've got a _mesa_lookup_renderbuffer_err function that will come out in my framebuffer object series. <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+   struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, renderbuffer);<br>
+   if (rb == &DummyRenderbuffer) {<br>
+      /* ID was reserved, but no real renderbuffer object made yet */<br>
+      rb = NULL;<br>
+   }<br>
+<br>
+   get_render_buffer_parameteriv(ctx, rb, pname, params, true);<br>
 }<br>
<br>
<br>
diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h<br>
index 9ab6b0b..b92149b 100644<br>
--- a/src/mesa/main/fbobject.h<br>
+++ b/src/mesa/main/fbobject.h<br>
@@ -137,6 +137,10 @@ extern void GLAPIENTRY<br>
 _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname,<br>
                                     GLint *params);<br>
<br>
+void GLAPIENTRY<br>
+_mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,<br>
+                                      GLint *params);<br>
+<br>
 extern GLboolean GLAPIENTRY<br>
 _mesa_IsFramebuffer(GLuint framebuffer);<br>
<br>
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp<br>
index 34e52d2..1d7a57e 100644<br>
--- a/src/mesa/main/tests/dispatch_sanity.cpp<br>
+++ b/src/mesa/main/tests/dispatch_sanity.cpp<br>
@@ -962,6 +962,7 @@ const struct function gl_core_functions_possible[] = {<br>
    { "glGetTransformFeedbacki_v", 45, -1 },<br>
    { "glGetTransformFeedbacki64_v", 45, -1 },<br>
    { "glCreateRenderbuffers", 45, -1 },<br>
+   { "glGetNamedRenderbufferParameteriv", 45, -1 },<br>
    { "glCreateTextures", 45, -1 },<br>
    { "glTextureStorage1D", 45, -1 },<br>
    { "glTextureStorage2D", 45, -1 },<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.3.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><div>With that one nit fixed,<br><br></div><div>Reviewed-by: Laura Ekstrand <<a href="mailto:laura@jlekstrand.net">laura@jlekstrand.net</a>> <br></div></div><br></div></div>