[Mesa-dev] [PATCH 1/2] mesa: Track the API used to create a VAO

Ian Romanick idr at freedesktop.org
Sat Jan 21 10:44:05 PST 2012


On Sat, Jan 21, 2012 at 08:14:18AM -0700, Brian Paul wrote:
> On 01/20/2012 07:59 PM, Ian Romanick wrote:
> >From: Ian Romanick<ian.d.romanick at intel.com>
> >
> >There are more differences between Apple and ARB than just the Gen
> >requirement.
> >
> >NOTE: This is a candidate for release branches.
> >
> >Signed-off-by: Ian Romanick<ian.d.romanick at intel.com>
> >---
> >  src/mesa/main/arrayobj.c |    1 +
> >  src/mesa/main/mtypes.h   |    5 +++++
> >  2 files changed, 6 insertions(+), 0 deletions(-)
> >
> >diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
> >index 3287745..0e74777 100644
> >--- a/src/mesa/main/arrayobj.c
> >+++ b/src/mesa/main/arrayobj.c
> >@@ -372,6 +372,7 @@ bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired)
> >              _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindVertexArrayAPPLE");
> >              return;
> >           }
> >+         newObj->arb_semantics = genRequired;
> >           save_array_object(ctx, newObj);
> >        }
> >     }
> 
> The existing gl_array_object::VBOonly field is set for array objects
> that are created with the ARB glGenVertexArrays() function.  You're
> setting the new arb_semantics field at bind time.
> 
> Do we want to combine those fields into one flag that's set at Gen
> time, not Bind time?

We may want to combine the fields.  I pick Bind as the time to pick
the semantic because the "Interactions with APPLE_vertex_array_object"
section of the ARB_vao spec says:

    "The first bind call, either BindVertexArray or BindVertexArrayAPPLE,
    determines the semantic of the object."

I think that means the Gen functions could share an entry point.

> The genRequired param to bind_vertex_array() is/was really just used
> to implement an error check.
> 
> 
> >diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> >index 2ff6085..a89d586 100644
> >--- a/src/mesa/main/mtypes.h
> >+++ b/src/mesa/main/mtypes.h
> >@@ -1629,6 +1629,11 @@ struct gl_array_object
> >     GLuint _MaxElement;
> >
> >     struct gl_buffer_object *ElementArrayBufferObj;
> >+
> >+   /**
> >+    * Does this VAO follow the Apple or ARB semantics?
> >+    */
> >+   GLboolean arb_semantics;
> >  };
> 
> To be consistent with other field names, this should be capitalized
> as ARBsemantics.

Okay.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120121/80d4795a/attachment.pgp>


More information about the mesa-dev mailing list