Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.9 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    EGL_EXT_device_base
    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
    
    人人超碰97caoporen国产