summaryrefslogtreecommitdiff
path: root/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt
diff options
context:
space:
mode:
Diffstat (limited to 'glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt')
-rw-r--r--glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt243
1 files changed, 243 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt b/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt
new file mode 100644
index 0000000..aece774
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt
@@ -0,0 +1,243 @@
+Name
+
+ EXT_device_base
+
+Name Strings
+
+ EGL_EXT_device_base
+
+Contributors
+
+ James Jones
+ Daniel Kartch
+ Jamie Madill
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Status
+
+ Complete
+
+ Rewritten in terms of split functionality in EXT_dispay_device and
+ EXT_device_enumeration.
+
+Version
+
+ Version 9 - March 24th, 2015
+
+Number
+
+ EGL Extension #72
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Written against the wording of EGL 1.5.
+
+ The specifications of EGL_EXT_device_query and
+ EGL_EXT_device_enumeration are required to determine the
+ specification of this extension, although those extensions may not
+ be supported.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ This extension defines the first step of this bootstrapping
+ process: Device enumeration.
+
+New Types
+
+ As defined by EGL_EXT_device_query.
+
+New Functions
+
+ As defined by EGL_EXT_device_query and EGL_EXT_device_enumeration.
+
+New Tokens
+
+ As defined by EGL_EXT_device_query.
+
+Add to section "3.2 Devices"
+
+ "EGL_EXT_device_base is equivalent to the combination of the
+ functionality defined by EGL_EXT_device_query and
+ EGL_EXT_device_enumeration."
+
+Issues
+
+ 1. Should there be a mechanism (such as an attribute list) to
+ filter devices in eglQueryDevicesEXT()?
+
+ RESOLVED: No. This could develop too much complexity, like
+ the EGLConfig mechanism. Instead, force applications to query
+ all devices and implement any desired filtering themselves.
+
+ 2. Should there be an eglSetDeviceAttribEXT()?
+
+ RESOLVED: No. Device properties are immutable.
+
+ 3. Should a device file descriptor attribute be included in the
+ base specification?
+
+ RESOLVED: No. It seems like an arbitrary attribute to include
+ in the base extension. Other extensions can easily be added
+ if this or other device attributes are needed.
+
+ 4. Should EGLDeviceEXT handles be opaque pointers or 32-bit
+ values?
+
+ RESOLVED: Opaque pointers. The trend seems to be to use
+ opaque pointers for object handles, and opaque pointers allow
+ more implementation flexibility than 32-bit values.
+ Additionally, the introduction of the EGLAttrib type allows
+ inclusion of pointer-sized types in attribute lists, which was
+ the only major advantage of 32-bit types.
+
+ 5. Should eglQueryDisplayAttribEXT be defined as part of this
+ extension?
+
+ RESOLVED: Yes. There are no other known uses for this
+ function, so it should be defined here. If other uses are
+ found, future extension specifications can reference this
+ extension or retroactively move it to a separate extension.
+
+ 6. How should bonded GPU configurations, such as SLI or Crossfire
+ be enumerated? What about other hybrid rendering solutions?
+
+ RESOLVED: Bonded GPUs should appear as one device in this API,
+ since the client APIs generally treat them as one device.
+ Further queries can be added to distinguish the lower-level
+ hardware within these bonded devices.
+
+ Hybrid GPUs, which behave independently but are switched
+ between in a manner transparent to the user, should be
+ enumerated separately. This extension is intended to be used
+ at a level of the software stack below this type of automatic
+ switching or output sharing.
+
+ 7. Should this extension require all displays to have an
+ associated, queryable device handle?
+
+ RESOLVED: Yes. This allows creating new namespace containers
+ that all displays can be grouped in to and allows existing
+ applications with display-based initialization code to easily
+ add device-level functionality. Future extensions are
+ expected to expose methods to correlate EGL devices and native
+ devices, and to use devices as namespaces for future objects
+ and operations, such as cross-display EGL streams.
+
+ 8. Are device handles returned by EGL valid in other processes?
+
+ RESOLVED: No. Another level of indirection is required to
+ correlate two EGL devices in separate processes.
+
+ 9. Is a general display pointer query mechanism needed, or should
+ an eglGetDevice call be added to query a display's associated
+ device?
+
+ RESOLVED: A general mechanism is better. It may have other
+ uses in the future.
+
+ 10. Should a new type of extension be introduced to query device-
+ specific extensions?
+
+ RESOLVED: Yes. Without this mechanism, it is likely that most
+ device extensions would require a separate mechanism to
+ determine which devices actually support them. Further,
+ requiring all device-level extensions to be listed as client
+ extensions forces them to be implemented in the EGL client
+ library, or "ICD". This is unfortunate since vendors will
+ likely wish to expose vendor-specific device extensions.
+
+ These advantages were weighed against the one known
+ disadvantage of a separate extension type: Increasing the
+ complexity of this extension and the EGL extension mechanism
+ in general.
+
+ 11. Is eglQueryDeviceStringEXT necessary, or should the device
+ extension string be queried using eglQueryDeviceAttribEXT?
+
+ RESOLVED: Using a separate query seems more consistent with
+ how the current extension strings are queried.
+
+ 12. Should this extension contain both device enumeration and
+ the ability to query the device backing an EGLDisplay?
+
+ RESOLVED: This extension initially included both of these
+ abilities. To allow simpler implementations to add only the
+ ability to query the device of an existing EGLDisplay, this
+ extension was split into two separate extensions:
+
+ EGL_EXT_device_query
+ EGL_EXT_device_enumeration
+
+ The presence of this extension now only indicates support
+ for both of the above extensions.
+
+Revision History:
+
+ #9 (March 24th, 2015) James Jones
+ - Split the extension into two child extensions:
+ EGL_EXT_device_query
+ EGL_EXT_device_enumeration
+
+ #8 (May 16th, 2014) James Jones
+ - Marked the extension complete.
+ - Marked all issues resolved.
+
+ #7 (April 8th, 2014) James Jones
+ - Renamed eglGetDisplayAttribEXT back to
+ eglQueryDisplayAttribEXT.
+ - Update wording based on the EGL 1.5 specification.
+ - Use EGLAttrib instead of EGLAttribEXT.
+ - Assigned values to tokens.
+
+ #6 (November 6th, 2013) James Jones
+ - Added EGL_BAD_DEVICE_EXT error code.
+ - Renamed some functions for consistency with the core spec
+
+ #5 (November 6th, 2013) James Jones
+ - Specified this is a client extension
+ - Renamed eglQueryDisplayPointerEXT eglGetDisplayAttribEXT
+ and modified it to use the new EGLAttribEXT type rather than
+ a void pointer
+ - Introduced the "device" extension type.
+ - Added eglQueryDeviceStringEXT to query device extension
+ strings
+ - Removed issues 5, 10, and 12 as they are no longer relevant
+ - Added issues 10 and 11.
+
+ #4 (May 14th, 2013) James Jones
+ - Merged in EGL_EXT_display_attributes
+ - Changed eglGetDisplayPointerEXT to eglQueryDisplayPointerEXT
+ - Remove eglGetDisplayAttribEXT since it has no known use case
+
+ #3 (April 23rd, 2013) James Jones
+ - Include EGL_NO_DEVICE_EXT
+ - Added issues 8 and 9
+
+ #2 (April 18th, 2013) James Jones
+ - Reworded issue 3 and flipped the resolution
+ - Added issues 5, 6, and 7
+ - Filled in the actual spec language modifications
+ - Renamed from EGL_EXT_device to EGL_EXT_device_base
+ - Fixed some typos
+
+ #1 (April 16th, 2013) James Jones
+ - Initial Draft