blob: ad6f1b6541af82042f0073b9bd43f163cba0834b [file] [log] [blame]
Name
ANGLE_platform_angle_d3d
Name Strings
EGL_ANGLE_platform_angle_d3d
Contributors
Shannon Woods, Google
Geoff Lang, Google
Contacts
Geoff Lang, Google (geofflang 'at' chromium 'dot' org)
Status
Draft
Version
Version 3, 2014-11-26
Number
EGL Extension XXX
Extension Type
EGL client extension
Dependencies
Requires ANGLE_platform_angle.
Overview
This extension enables selection of D3D display types.
New Types
None
New Procedures and Functions
None
New Tokens
Accepted as values for the EGL_PLATFORM_ANGLE_TYPE_ANGLE attribute:
EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207
EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208
Accepted as an attribute name in the <attrib_list> argument of
eglGetPlatformDisplayEXT:
EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209
Accepted as values for the EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE attribute:
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A
EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE 0x320B
EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE 0x320C
Additions to the EGL Specification
None.
New Behavior
To request a display that is backed by Direct3D resources, the value of
EGL_PLATFORM_ANGLE_TYPE_ANGLE should be:
- EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE for a D3D9 display,
- EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE for a D3D11 display.
To request a specific maximum feature level to be used by the D3D11
display, EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE and
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE can be used. Only feature
levels that are capable of supporting all available client APIs will be
used unless explicitly requested.
EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE and
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE have no effect when requesting
a D3D9 display.
If no <attrib_list> is specified to eglGetPlatformDisplayEXT, the value of
EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE is implicitly set to
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE. Otherwise, the value of
EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE should be:
- EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE to request a hardware
accelerated device.
- EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE to request an
optimized software rasterizer.
- EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE to request a
reference rasterizer.
If EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE is set to
EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE and EGL_PLATFORM_ANGLE_TYPE_ANGLE
is not set to EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, an EGL_BAD_ATTRIBUTE
error is generated and EGL_NO_DISPLAY is returned.
Issues
None
Revision History
Version 1, 2014-06-05 (Geoff Lang)
- Initial draft
Version 2, 2014-10-27 (Geoff Lang)
- Separate WARP devices into a new attribute instead of a platform type.
- Moved descriptions of platforms and major/minor versions from
EGL_ANGLE_platform_angle spec to EGL_ANGLE_platform_angle_d3d.
Version 3, 2014-11-26 (Geoff Lang)
- Remove the USE_WARP bool and replace it with a DEVICE_TYPE enum.