st/mesa: don't pass NIR to draw module if IO is lowered
[mesa.git] / src / mesa / main / objectlabel.c
index b622d6a2979227350da5f8f5a92e735d4f26844e..1e3022ee547a482c8a2bb551f50d50b74c5d6da5 100644 (file)
@@ -107,6 +107,12 @@ copy_label(const GLchar *src, GLchar *dst, GLsizei *length, GLsizei bufSize)
    if (src)
       labelLen = strlen(src);
 
+   if (bufSize == 0) {
+      if (length)
+         *length = labelLen;
+      return;
+   }
+
    if (dst) {
       if (src) {
          if (bufSize <= labelLen)
@@ -170,9 +176,13 @@ get_label_pointer(struct gl_context *ctx, GLenum identifier, GLuint name,
       break;
    case GL_TRANSFORM_FEEDBACK:
       {
+         /* From the GL 4.5 specification, page 536:
+          * "An INVALID_VALUE error is generated if name is not the name of a
+          *  valid object of the type specified by identifier."
+          */
          struct gl_transform_feedback_object *tfo =
             _mesa_lookup_transform_feedback_object(ctx, name);
-         if (tfo)
+         if (tfo && tfo->EverBound)
             labelPtr = &tfo->Label;
       }
       break;
@@ -186,7 +196,7 @@ get_label_pointer(struct gl_context *ctx, GLenum identifier, GLuint name,
    case GL_TEXTURE:
       {
          struct gl_texture_object *texObj = _mesa_lookup_texture(ctx, name);
-         if (texObj)
+         if (texObj && texObj->Target)
             labelPtr = &texObj->Label;
       }
       break;