1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgName
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    MESA_agp_offset
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgName Strings
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    GLX_MESA_agp_offset
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgContact
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgStatus
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    Shipping (Mesa 4.0.4 and later.  Only implemented in particular
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    XFree86/DRI drivers.)
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgVersion
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    1.0
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNumber
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    TBD
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDependencies
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    OpenGL 1.0 or later is required
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    GLX_NV_vertex_array_range is required.
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    This extensions is written against the OpenGL 1.4 Specification.
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgOverview
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    This extensions provides a way to convert pointers in an AGP memory
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    region into byte offsets into the AGP aperture.
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    Note, this extension depends on GLX_NV_vertex_array_range, for which
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    no real specification exists.  See GL_NV_vertex_array_range for more
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    information.
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgIP Status
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    None
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgIssues
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    None
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNew Procedures and Functions
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    unsigned int glXGetAGPOffsetMESA( const void *pointer )
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNew Tokens
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    None
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAdditions to the OpenGL 1.4 Specification
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    None
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAdditions to Chapter 3 the GLX 1.4 Specification (Functions and Errors)
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    Add a new section, 3.6 as follows:
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    3.6 AGP Memory Access
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    and freed with glXFreeMemoryNV.  Sometimes it's useful to know where a
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    block of AGP memory is located with respect to the start of the AGP
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    aperture.  The function
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    Returns the offset of the given memory block from the start of AGP
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    memory in basic machine units (i.e. bytes).  If pointer is invalid
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    the value ~0 will be returned.
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgGLX Protocol
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    None.  This is a client side-only extension.
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgErrors
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    glXGetAGPOffsetMESA will return ~0 if the pointer does not point to
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    an AGP memory region.
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNew State
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    None
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgRevision History
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    20 September 2002 - Initial draft
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    2 October 2002 - finished GLX chapter 3 additions
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    27 July 2004 - use unsigned int instead of GLuint, void instead of GLvoid
96