Commit 09495f87 by Jamie Madill

Add ANGLE Platform Metal extension.

EGL_ANGLE_platform_angle_metal is the new extension name. Bug: angleproject:2634 Change-Id: I6ebffbd4f6d7974bc5ef6d48849e985ee83e9808 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1848793Reviewed-by: 's avatarLe Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent ef4c25e7
Name
ANGLE_platform_angle_metal
Name Strings
EGL_ANGLE_platform_angle_metal
Contributors
Jamie Madill, Google
Contacts
Jamie Madill, Google (jmadill 'at' google 'dot' com)
Status
Draft
Version
Version 2, 2019-10-09
Number
EGL Extension XXX
Extension Type
EGL client extension
Dependencies
Requires ANGLE_platform_angle.
Overview
This extension enables selection of Metal 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_METAL_ANGLE 0x3489
Additions to the EGL Specification
None.
New Behavior
To request a display that is backed by a Metal driver, the value of
EGL_PLATFORM_ANGLE_TYPE_ANGLE should be
EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE.
Issues
1) Should the application be able to choose a specific version of Metal?
RESOLVED: No, use the default returned by the system. It doesn't
seem like recommended practice to choose a Metal version when
initializing a Metal device.
Revision History
Version 1, 2019-10-09 (Jamie Madill)
- Initial draft
...@@ -82,6 +82,11 @@ ...@@ -82,6 +82,11 @@
#define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450 #define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450
#endif /* EGL_ANGLE_platform_angle_vulkan */ #endif /* EGL_ANGLE_platform_angle_vulkan */
#ifndef EGL_ANGLE_platform_angle_metal
#define EGL_ANGLE_platform_angle_metal 1
#define EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE 0x3489
#endif /* EGL_ANGLE_platform_angle_metal */
#ifndef EGL_ANGLE_platform_angle_device_type_swiftshader #ifndef EGL_ANGLE_platform_angle_device_type_swiftshader
#define EGL_ANGLE_platform_angle_device_type_swiftshader #define EGL_ANGLE_platform_angle_device_type_swiftshader
#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE 0x3487 #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE 0x3487
......
...@@ -1258,6 +1258,7 @@ std::vector<std::string> ClientExtensions::getStrings() const ...@@ -1258,6 +1258,7 @@ std::vector<std::string> ClientExtensions::getStrings() const
InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_null", platformANGLENULL, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_null", platformANGLENULL, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_vulkan", platformANGLEVulkan, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_vulkan", platformANGLEVulkan, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_metal", platformANGLEMetal, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_context_virtualization", platformANGLEContextVirtualization, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_context_virtualization", platformANGLEContextVirtualization, &extensionStrings);
InsertExtensionString("EGL_ANGLE_device_creation", deviceCreation, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_creation", deviceCreation, &extensionStrings);
InsertExtensionString("EGL_ANGLE_device_creation_d3d11", deviceCreationD3D11, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_creation_d3d11", deviceCreationD3D11, &extensionStrings);
......
...@@ -979,6 +979,9 @@ struct ClientExtensions ...@@ -979,6 +979,9 @@ struct ClientExtensions
// EGL_ANGLE_platform_angle_vulkan // EGL_ANGLE_platform_angle_vulkan
bool platformANGLEVulkan = false; bool platformANGLEVulkan = false;
// EGL_ANGLE_platform_angle_metal
bool platformANGLEMetal = false;
// EGL_ANGLE_platform_angle_context_virtualization // EGL_ANGLE_platform_angle_context_virtualization
bool platformANGLEContextVirtualization = false; bool platformANGLEContextVirtualization = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment