blob: c0a82332c8991b6fa21f06941b6431effadadc30 [file] [log] [blame]
XXX - Not complete yet!!!
Name
SGIX_async_pixel
Name Strings
GL_SGIX_async_pixel
Version
$Date: 1998/06/04 20:57:38 $ $Revision: 1.7 $
Number
133
Dependencies
SGIX_async is required.
EXT_texture3D affects the definition of this extension
SGIS_texture4D affects the definition of this extension
Overview
This extension introduces a new asynchronous mode for texture
download, pixel download and pixel readback commands. It allows
programs to transfer textures or images between the host and the
graphics accelerator in parallel with the execution of other
graphics commands (possibly taking advantage of a secondary path
to the graphics accelerator). It also allows programs to issue
non-blocking pixel readback commands that return immediately after
they are issued so that the program can issue other commands while
the readback takes place.
New Procedures and Functions
None
New Tokens
Accepted by the <cap> parameter of Enable, Disable and IsEnabled,
and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
and GetDoublev:
ASYNC_TEX_IMAGE_SGIX 0x835C
ASYNC_DRAW_PIXELS_SGIX 0x835D
ASYNC_READ_PIXELS_SGIX 0x835E
Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
GetFloatv, and GetDoublev:
MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
MAX_ASYNC_READ_PIXELS_SGIX 0x8361
Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the 1.1 Specification (Rasterization)
Add a section following 3.6.3 ("Rasterization of Pixel
Rectangles") entitled "Asynchronous Pixel Downloads":
Normally the DrawPixels command is synchronous: OpenGL executes a
DrawPixels command in the order it is issued in the OpenGL command
stream. Calling Enable with the <cap> parameter set to
ASYNC_DRAW_PIXELS_SGIX causes subsequent DrawPixels commands to be
asynchronous as defined in the SGIX_async extension spec. An
asynchronous DrawPixels command samples the OpenGL state vector at
the point in the OpenGL command stream where the command is
issued, but the results of the command (e.g. updates to the frame
buffer) do not happen until some unspecified time in the future.
In particular, the order of the asynchronous command relative to
other OpenGL commands issued later in the command stream is
undefined. An implementation may choose to execute asynchronous
commands in parallel with the normal command stream or at some
convenient time in the future.
Calling Disable with the <cap> parameter set to
ASYNC_DRAW_PIXELS_SGIX restores the default synchronous behavior
for subsequent DrawPixels commands. It does not affect any
pending asynchronous DrawPixels commands, or wait for their
completion.
When an asynchronous DrawPixels command is issued, it is
associated with the current value of ASYNC_MARKER_SGIX as
described in the SGIX_async extension specification. A program
can determine if an asynchronous DrawPixels command has completed
using the FinishAsyncSGIX or PollAsyncSGIX commands.
Add a subsection to section 3.8 ("Texturing") entitled
"Asynchronous Texture Downloads":
Calling Enable with the <cap> parameter set to
ASYNC_TEX_IMAGE_SGIX causes subsequent TexImage1D, TexSubImage1D,
TexImage2D, TexSubImage2D, TexImage3DEXT, TexSubImage3DEXT,
TexImage4DSGIS and TexSubImage4DSGIS commands to be asynchronous
(similar to the asynchronous DrawPixels command described
earlier). Calling Disable with the <cap> parameter set to
ASYNC_TEX_IMAGE_SGIX restores the default synchronous behavior for
subsequent TexImage commands.
Additions to Chapter 4 of the 1.1 Specification (Fragments and the
Frame Buffer)
Add to section 4.3.2 ("Reading Pixels"):
Calling Enable with the <cap> parameter set to
ASYNC_READ_PIXELS_SGIX causes subsequent ReadPixels commands to be
asynchronous (similar to the asynchronous DrawPixels command
described earlier). An implementation of the asynchronous
ReadPixels command may be non-blocking: It may return control to
the program immediately rather than waiting for the command's
results to be written into the destination rectangle in host
memory. The ReadPixels command samples the OpenGL state vector at
the time it is issued, but it may be executed at some undefined
point in the future. In particular, if subsequent commands change
the contents of the source rectangle in the framebuffer then the
result of the ReadPixels is undefined.
Calling Disable with the <cap> parameter set to
ASYNC_READ_PIXELS_SGIX restores the default synchronous behavior
for subsequent ReadPixels commands.
Additions to Chapter 5 of the 1.1 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
None
Additions to the GLX Specification
None
GLX Protocol
None
Dependencies on SGIX_async
This document adds three categories of asynchronous commands to
the framework defined by SGIX_async.
Dependencies on EXT_texture3D
If EXT_texture3D is not implemented then the references to
TexImage3DEXT and TexSubImage3DEXT should be ignored.
Dependencies on SGIS_texture4D
If SGIS_texture4D is not implemented then the references to
TexImage4DSGIS and TexSubImage4DSGIS should be ignored.
Errors
INVALID_OPERATION is generated if DrawPixels is called and
ASYNC_DRAW_PIXELS_SGIX is enabled and the number of asynchronous
DrawPixels commands that have been issued but not queried (using
FinishAsyncSGIX or PollAsyncSGIX) exceeds MAX_ASYNC_DRAW_PIXELS_SGIX.
INVALID_OPERATION is generated if TexImage1D, TexSubImage1D,
TexImage2D, TexSubImage2D, TexImage3DEXT, TexSubImage3DEXT,
TexImage4DSGIS or TexSubImage4DSGIS is called and
ASYNC_TEX_IMAGE_SGIX is enabled and the number of asynchronous
TexImage commands that have been issued but not queried (using
FinishAsyncSGIX or PollAsyncSGIX) exceeds
MAX_ASYNC_TEX_IMAGE_SGIX.
INVALID_OPERATION is generated if ReadPixels is called and
ASYNC_READ_PIXELS_SGIX is enabled and the number of asynchronous
ReadPixels commands that have been issued but not queried (using
FinishAsyncSGIX or PollAsyncSGIX) exceeds
MAX_ASYNC_READ_PIXELS_SGIX.
New State
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
ASYNC_TEX_IMAGE_SGIX IsEnabled B False enable
ASYNC_DRAW_PIXELS_SGIX IsEnabled B False enable
ASYNC_READ_PIXELS_SGIX IsEnabled B False enable
New Implementation Dependent State
Minimum
Get Value Get Command Type Value
--------- ----------- ---- -------
MAX_ASYNC_TEX_IMAGE_SGIX GetIntegerv Z+ 1
MAX_ASYNC_DRAW_PIXELS_SGIX GetIntegerv Z+ 1
MAX_ASYNC_READ_PIXELS_SGIX GetIntegerv Z+ 1