• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1XXX - Not complete yet!!!
2
3Name
4
5    SGIX_async_pixel
6
7Name Strings
8
9    GL_SGIX_async_pixel
10
11Version
12
13    $Date: 1998/06/04 20:57:38 $ $Revision: 1.7 $
14
15Number
16
17    133
18
19Dependencies
20
21    SGIX_async is required.
22    EXT_texture3D affects the definition of this extension
23    SGIS_texture4D affects the definition of this extension
24
25Overview
26
27    This extension introduces a new asynchronous mode for texture
28    download, pixel download and pixel readback commands.  It allows
29    programs to transfer textures or images between the host and the
30    graphics accelerator in parallel with the execution of other
31    graphics commands (possibly taking advantage of a secondary path
32    to the graphics accelerator).  It also allows programs to issue
33    non-blocking pixel readback commands that return immediately after
34    they are issued so that the program can issue other commands while
35    the readback takes place.
36
37New Procedures and Functions
38
39    None
40
41New Tokens
42
43    Accepted by the <cap> parameter of Enable, Disable and IsEnabled,
44    and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
45    and GetDoublev:
46
47        ASYNC_TEX_IMAGE_SGIX		0x835C
48	ASYNC_DRAW_PIXELS_SGIX		0x835D
49	ASYNC_READ_PIXELS_SGIX		0x835E
50
51    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
52    GetFloatv, and GetDoublev:
53
54        MAX_ASYNC_TEX_IMAGE_SGIX	0x835F
55        MAX_ASYNC_DRAW_PIXELS_SGIX	0x8360
56        MAX_ASYNC_READ_PIXELS_SGIX	0x8361
57
58Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
59
60    None
61
62Additions to Chapter 3 of the 1.1 Specification (Rasterization)
63
64    Add a section following 3.6.3 ("Rasterization of Pixel
65    Rectangles") entitled "Asynchronous Pixel Downloads":
66
67    Normally the DrawPixels command is synchronous: OpenGL executes a
68    DrawPixels command in the order it is issued in the OpenGL command
69    stream.  Calling Enable with the <cap> parameter set to
70    ASYNC_DRAW_PIXELS_SGIX causes subsequent DrawPixels commands to be
71    asynchronous as defined in the SGIX_async extension spec.  An
72    asynchronous DrawPixels command samples the OpenGL state vector at
73    the point in the OpenGL command stream where the command is
74    issued, but the results of the command (e.g. updates to the frame
75    buffer) do not happen until some unspecified time in the future.
76    In particular, the order of the asynchronous command relative to
77    other OpenGL commands issued later in the command stream is
78    undefined.  An implementation may choose to execute asynchronous
79    commands in parallel with the normal command stream or at some
80    convenient time in the future.
81
82    Calling Disable with the <cap> parameter set to
83    ASYNC_DRAW_PIXELS_SGIX restores the default synchronous behavior
84    for subsequent DrawPixels commands.  It does not affect any
85    pending asynchronous DrawPixels commands, or wait for their
86    completion.
87
88    When an asynchronous DrawPixels command is issued, it is
89    associated with the current value of ASYNC_MARKER_SGIX as
90    described in the SGIX_async extension specification.  A program
91    can determine if an asynchronous DrawPixels command has completed
92    using the FinishAsyncSGIX or PollAsyncSGIX commands.
93
94    Add a subsection to section 3.8 ("Texturing") entitled
95    "Asynchronous Texture Downloads":
96
97    Calling Enable with the <cap> parameter set to
98    ASYNC_TEX_IMAGE_SGIX causes subsequent TexImage1D, TexSubImage1D,
99    TexImage2D, TexSubImage2D, TexImage3DEXT, TexSubImage3DEXT,
100    TexImage4DSGIS and TexSubImage4DSGIS commands to be asynchronous
101    (similar to the asynchronous DrawPixels command described
102    earlier).  Calling Disable with the <cap> parameter set to
103    ASYNC_TEX_IMAGE_SGIX restores the default synchronous behavior for
104    subsequent TexImage commands.
105
106Additions to Chapter 4 of the 1.1 Specification (Fragments and the
107Frame Buffer)
108
109    Add to section 4.3.2 ("Reading Pixels"):
110
111    Calling Enable with the <cap> parameter set to
112    ASYNC_READ_PIXELS_SGIX causes subsequent ReadPixels commands to be
113    asynchronous (similar to the asynchronous DrawPixels command
114    described earlier).  An implementation of the asynchronous
115    ReadPixels command may be non-blocking: It may return control to
116    the program immediately rather than waiting for the command's
117    results to be written into the destination rectangle in host
118    memory.  The ReadPixels command samples the OpenGL state vector at
119    the time it is issued, but it may be executed at some undefined
120    point in the future.  In particular, if subsequent commands change
121    the contents of the source rectangle in the framebuffer then the
122    result of the ReadPixels is undefined.
123
124    Calling Disable with the <cap> parameter set to
125    ASYNC_READ_PIXELS_SGIX restores the default synchronous behavior
126    for subsequent ReadPixels commands.
127
128Additions to Chapter 5 of the 1.1 Specification (Special Functions)
129
130    None
131
132Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
133
134    None
135
136Additions to the GLX Specification
137
138    None
139
140GLX Protocol
141
142    None
143
144Dependencies on SGIX_async
145
146    This document adds three categories of asynchronous commands to
147    the framework defined by SGIX_async.
148
149Dependencies on EXT_texture3D
150
151    If EXT_texture3D is not implemented then the references to
152    TexImage3DEXT and TexSubImage3DEXT should be ignored.
153
154Dependencies on SGIS_texture4D
155
156    If SGIS_texture4D is not implemented then the references to
157    TexImage4DSGIS and TexSubImage4DSGIS should be ignored.
158
159Errors
160
161    INVALID_OPERATION is generated if DrawPixels is called and
162    ASYNC_DRAW_PIXELS_SGIX is enabled and the number of asynchronous
163    DrawPixels commands that have been issued but not queried (using
164    FinishAsyncSGIX or PollAsyncSGIX) exceeds MAX_ASYNC_DRAW_PIXELS_SGIX.
165
166    INVALID_OPERATION is generated if TexImage1D, TexSubImage1D,
167    TexImage2D, TexSubImage2D, TexImage3DEXT, TexSubImage3DEXT,
168    TexImage4DSGIS or TexSubImage4DSGIS is called and
169    ASYNC_TEX_IMAGE_SGIX is enabled and the number of asynchronous
170    TexImage commands that have been issued but not queried (using
171    FinishAsyncSGIX or PollAsyncSGIX) exceeds
172    MAX_ASYNC_TEX_IMAGE_SGIX.
173
174    INVALID_OPERATION is generated if ReadPixels is called and
175    ASYNC_READ_PIXELS_SGIX is enabled and the number of asynchronous
176    ReadPixels commands that have been issued but not queried (using
177    FinishAsyncSGIX or PollAsyncSGIX) exceeds
178    MAX_ASYNC_READ_PIXELS_SGIX.
179
180New State
181
182    Get Value			Get Command	Type	Value	Attrib
183    ---------			-----------	----	-------	------
184    ASYNC_TEX_IMAGE_SGIX        IsEnabled       B       False   enable
185    ASYNC_DRAW_PIXELS_SGIX      IsEnabled       B       False   enable
186    ASYNC_READ_PIXELS_SGIX      IsEnabled       B       False   enable
187
188New Implementation Dependent State
189
190								Minimum
191    Get Value			Get Command	Type		Value
192    ---------			-----------	----		-------
193    MAX_ASYNC_TEX_IMAGE_SGIX    GetIntegerv     Z+              1
194    MAX_ASYNC_DRAW_PIXELS_SGIX  GetIntegerv     Z+              1
195    MAX_ASYNC_READ_PIXELS_SGIX  GetIntegerv     Z+              1
196