mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-07 06:09:57 +03:00
Split EGL_CHROMIUM_sync_control into EGL_ANGLE_sync_control_rate
eglGetMscRateCHROMIUM was added to EGL_CHROMIUM_sync_control based on the original extension GLX_OML_sync_control. However, this new function is not universally implemented. This CL moves it to a new extension, EGL_ANGLE_sync_control_rate, and renames it to eglGetMscRateANGLE. Bug: chromium:1064078 Change-Id: Ia2a29c6776b2b2bf2b98e58ee83b5f141ed01301 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2118154 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
This commit is contained in:
committed by
Commit Bot
parent
91ea27aee4
commit
4b94d7bb4f
110
extensions/EGL_ANGLE_sync_control_rate.txt
Normal file
110
extensions/EGL_ANGLE_sync_control_rate.txt
Normal file
@@ -0,0 +1,110 @@
|
||||
Name
|
||||
|
||||
ANGLE_sync_control_rate
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_ANGLE_sync_control_rate
|
||||
|
||||
Contact
|
||||
|
||||
Jonah Ryan-Davis, Google (jonahr 'at' google.com)
|
||||
|
||||
Status
|
||||
|
||||
Draft.
|
||||
|
||||
Version
|
||||
|
||||
Version 1, 2020-03-24
|
||||
|
||||
Based on GLX_OML_sync_control Revision 6.0
|
||||
|
||||
Number
|
||||
|
||||
???
|
||||
|
||||
Dependencies
|
||||
|
||||
The extension is written against the EGL 1.2 Specification, although it
|
||||
should work on other versions of these specifications. This extension
|
||||
also requires an operating system which supports CLOCK_MONOTONIC.
|
||||
|
||||
Overview
|
||||
|
||||
This extension provides counters which let applications know about the
|
||||
timing of the last vertical retrace. By looking at the system clock, as
|
||||
well as the refresh rate of the monitor, this should enable applications
|
||||
to predict the position of future retraces so as to schedule an optimal
|
||||
workload.
|
||||
|
||||
This extension incorporates the use of three counters that provide
|
||||
the necessary synchronization. The Unadjusted System Time (or UST)
|
||||
is the 64-bit CLOCK_MONOTONIC clock; in particular this lets the
|
||||
application schedule future vertical retraces by querying this clock.
|
||||
The graphics Media Stream Counter (or graphics MSC) is a counter
|
||||
that is unique to the graphics subsystem and increments for each
|
||||
vertical retrace that occurs. The Swap Buffer Counter (SBC) is an
|
||||
attribute of an EGLSurface and is incremented each time a swap
|
||||
buffer action is performed on the associated surface.
|
||||
|
||||
The use of these three counters allows the application to
|
||||
synchronize graphics rendering to vertical retraces and/or swap
|
||||
buffer actions. For example, by querying the synchronization values for
|
||||
a given surface, the application can accurately predict the timing for
|
||||
the next vertical retraces and schedule rendering accordingly.
|
||||
|
||||
Issues
|
||||
|
||||
None.
|
||||
|
||||
IP Status
|
||||
|
||||
No known issues.
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
Bool eglGetMscRateANGLE(EGLDisplay* dpy,
|
||||
EGLSurface surface,
|
||||
int32_t* numerator,
|
||||
int32_t* denominator)
|
||||
|
||||
New Tokens
|
||||
|
||||
None
|
||||
|
||||
Additions to the EGL 1.3 Specification
|
||||
|
||||
The graphics MSC value is incremented once for each screen refresh.
|
||||
For a non-interlaced display, this means that the graphics MSC value
|
||||
is incremented for each frame. For an interlaced display, it means
|
||||
that it will be incremented for each field. For a multi-monitor
|
||||
system, the monitor used to determine MSC is the one where the surface
|
||||
is located. If the surface spans multiple monitors, the monitor used
|
||||
to determine MSC is the one with the biggest coverage in pixels.
|
||||
|
||||
eglGetMscRateANGLE returns the rate at which the MSC will be incremented
|
||||
for the display associated with <hdc>. The rate is expressed in Hertz
|
||||
as <numerator> / <denominator>. If the MSC rate in Hertz is an
|
||||
integer, then <denominator> will be 1 and <numerator> will be
|
||||
the MSC rate.
|
||||
|
||||
The function eglGetMscRateANGLE will return TRUE if the function
|
||||
completed successfully, FALSE otherwise.
|
||||
|
||||
Each time eglSwapBuffer succeeds, the SBC will be increased within a
|
||||
finite time period.
|
||||
|
||||
Errors
|
||||
|
||||
The function eglGetMscRateANGLE will return FALSE if there is no
|
||||
current EGLContext.
|
||||
|
||||
New Implementation Dependent State
|
||||
|
||||
None
|
||||
|
||||
Revision History
|
||||
|
||||
Version 1, 2020-03-24 (Jonah Ryan-Davis)
|
||||
- Initial draft, based on GLX_OML_sync_control revision 6.0.
|
||||
@@ -16,7 +16,7 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
Version 3, 2020-01-23
|
||||
Version 2, 2015-05-05
|
||||
|
||||
Based on GLX_OML_sync_control Revision 6.0
|
||||
|
||||
@@ -70,12 +70,6 @@ New Procedures and Functions
|
||||
int64_t* msc,
|
||||
int64_t* sbc)
|
||||
|
||||
Bool eglGetMscRateCHROMIUM(EGLDisplay* dpy,
|
||||
EGLSurface surface,
|
||||
int32_t* numerator,
|
||||
int32_t* denominator)
|
||||
|
||||
|
||||
New Tokens
|
||||
|
||||
None
|
||||
@@ -112,22 +106,16 @@ Additions to the EGL 1.3 Specification
|
||||
is located. If the surface spans multiple monitors, the monitor used
|
||||
to determine MSC is the one with the biggest coverage in pixels.
|
||||
|
||||
eglGetMscRateCHROMIUM returns the rate at which the MSC will be incremented
|
||||
for the display associated with <hdc>. The rate is expressed in Hertz
|
||||
as <numerator> / <denominator>. If the MSC rate in Hertz is an
|
||||
integer, then <denominator> will be 1 and <numerator> will be
|
||||
the MSC rate.
|
||||
|
||||
The functions eglGetSyncValuesCHROMIUM, and eglGetMscRateCHROMIUM will
|
||||
return TRUE if the function completed successfully, FALSE otherwise.
|
||||
The function eglGetSyncValuesCHROMIUM will return TRUE if the function
|
||||
completed successfully, FALSE otherwise.
|
||||
|
||||
Each time eglSwapBuffer succeeds, the SBC will be increased within a
|
||||
finite time period.
|
||||
|
||||
Errors
|
||||
|
||||
The functions eglGetSyncValuesCHROMIUM, and eglGetMscRateCHROMIUM will
|
||||
return FALSE if there is no current EGLContext.
|
||||
The function eglGetSyncValuesCHROMIUM will return FALSE if there is no
|
||||
current EGLContext.
|
||||
|
||||
|
||||
New State
|
||||
@@ -144,10 +132,6 @@ New Implementation Dependent State
|
||||
|
||||
Revision History
|
||||
|
||||
Version 3, 2020-01-23 (Jonah Ryan-Davis)
|
||||
- Add the function eglGetMscRateCHROMIUM based on glXGetMscRateOML from
|
||||
GLX_OML_sync_control revision 6.0.
|
||||
|
||||
Version 2, 2015-05-05 (Chad Versace)
|
||||
- Rename to EGL_CHROMIUM_sync_control from EGL_CHROMIUM_get_sync_values.
|
||||
EGL_CHROMIUM_sync_control is the de facto extension name because all
|
||||
|
||||
@@ -217,22 +217,28 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC) (EGLDisplay dp
|
||||
EGLuint64KHR *ust,
|
||||
EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATECHROMIUMPROC) (EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLuint64KHR *ust,
|
||||
EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateCHROMIUM(EGLDisplay dpy,
|
||||
#endif
|
||||
#endif /* EGL_CHROMIUM_sync_control */
|
||||
|
||||
#ifndef EGL_ANGLE_sync_control_rate
|
||||
#define EGL_ANGLE_sync_control_rate 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator);
|
||||
#endif
|
||||
#endif /* EGL_CHROMIUM_sync_control */
|
||||
#endif /* EGL_ANGLE_sync_control_rate */
|
||||
|
||||
#ifndef EGL_ANGLE_power_preference
|
||||
#define EGL_ANGLE_power_preference 1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"scripts/egl.xml":
|
||||
"842e24514c4cfe09fba703c17a0fd292",
|
||||
"scripts/egl_angle_ext.xml":
|
||||
"63f18dc9b7183ead4ddd3dfd1571973a",
|
||||
"854e99785af19f8f4eea4f73005a0451",
|
||||
"scripts/generate_loader.py":
|
||||
"792c41d7ae93a4518f0c73e45626d19b",
|
||||
"scripts/gl.xml":
|
||||
@@ -10,17 +10,17 @@
|
||||
"scripts/gl_angle_ext.xml":
|
||||
"079cc4829de7ce638faf7bbf66e141ad",
|
||||
"scripts/registry_xml.py":
|
||||
"439dd95a9f118a64e8745f97963efa4a",
|
||||
"4048ca8f1e61cd86df75e5a1778461ea",
|
||||
"scripts/wgl.xml":
|
||||
"aa96419c582af2f6673430e2847693f4",
|
||||
"src/libEGL/egl_loader_autogen.cpp":
|
||||
"6de27557530d1dff3780d83745c0a0fd",
|
||||
"64cb617726751808af6a64607cba39eb",
|
||||
"src/libEGL/egl_loader_autogen.h":
|
||||
"2fca11a29bb6e5cadb25d4862360ddd8",
|
||||
"e79b89b5f1f704383c96dbc99124efff",
|
||||
"util/egl_loader_autogen.cpp":
|
||||
"780b317fbd6ac03e300a7ee0122ab3cf",
|
||||
"44c9d17a658aec04dfa7b57fca5386a0",
|
||||
"util/egl_loader_autogen.h":
|
||||
"55b54071e61b3e7beab28178dc20fd28",
|
||||
"e0ae6f29162d13d8d825fc9cd58baf94",
|
||||
"util/gles_loader_autogen.cpp":
|
||||
"b73fa86312a71c76f6a8402548d21204",
|
||||
"util/gles_loader_autogen.h":
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"scripts/egl.xml":
|
||||
"842e24514c4cfe09fba703c17a0fd292",
|
||||
"scripts/egl_angle_ext.xml":
|
||||
"63f18dc9b7183ead4ddd3dfd1571973a",
|
||||
"854e99785af19f8f4eea4f73005a0451",
|
||||
"scripts/entry_point_packed_gl_enums.json":
|
||||
"63f508a08611e75810daedb297dca0e9",
|
||||
"scripts/generate_entry_points.py":
|
||||
@@ -12,7 +12,7 @@
|
||||
"scripts/gl_angle_ext.xml":
|
||||
"079cc4829de7ce638faf7bbf66e141ad",
|
||||
"scripts/registry_xml.py":
|
||||
"439dd95a9f118a64e8745f97963efa4a",
|
||||
"4048ca8f1e61cd86df75e5a1778461ea",
|
||||
"scripts/wgl.xml":
|
||||
"aa96419c582af2f6673430e2847693f4",
|
||||
"src/libANGLE/Context_gl_1_0_autogen.h":
|
||||
@@ -256,9 +256,9 @@
|
||||
"src/libGLESv2/libGLESv2_autogen.cpp":
|
||||
"1689a88c5bf376da1f0433db242ede7d",
|
||||
"src/libGLESv2/libGLESv2_autogen.def":
|
||||
"5f1eb763e31f9080eb2dfb1883260833",
|
||||
"e14cf59be44bd99efbeb44dcb3598f5f",
|
||||
"src/libGLESv2/libGLESv2_no_capture_autogen.def":
|
||||
"28c8a5ee0d3d67815c1a7ff7c2d495ca",
|
||||
"abbb5458eb7a505705a2ab6093cdd9a6",
|
||||
"src/libGLESv2/libGLESv2_with_capture_autogen.def":
|
||||
"dd0c7c54fd5da8af0dc85f2f1e3212ed"
|
||||
"39540b6e5499ab74e3222cab8c9d843d"
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
"scripts/gl_angle_ext.xml":
|
||||
"079cc4829de7ce638faf7bbf66e141ad",
|
||||
"scripts/registry_xml.py":
|
||||
"439dd95a9f118a64e8745f97963efa4a",
|
||||
"4048ca8f1e61cd86df75e5a1778461ea",
|
||||
"src/libANGLE/gl_enum_utils_autogen.cpp":
|
||||
"cfc52f413272c061ee4a037876792726",
|
||||
"src/libANGLE/gl_enum_utils_autogen.h":
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"scripts/egl.xml":
|
||||
"842e24514c4cfe09fba703c17a0fd292",
|
||||
"scripts/egl_angle_ext.xml":
|
||||
"63f18dc9b7183ead4ddd3dfd1571973a",
|
||||
"854e99785af19f8f4eea4f73005a0451",
|
||||
"scripts/gen_proc_table.py":
|
||||
"24dbcc78fd3f000f58ca98237ccc0da4",
|
||||
"scripts/gl.xml":
|
||||
@@ -10,11 +10,11 @@
|
||||
"scripts/gl_angle_ext.xml":
|
||||
"079cc4829de7ce638faf7bbf66e141ad",
|
||||
"scripts/registry_xml.py":
|
||||
"439dd95a9f118a64e8745f97963efa4a",
|
||||
"4048ca8f1e61cd86df75e5a1778461ea",
|
||||
"scripts/wgl.xml":
|
||||
"aa96419c582af2f6673430e2847693f4",
|
||||
"src/libGL/proc_table_wgl_autogen.cpp":
|
||||
"03c05f20c57c1de822b0ddaf6d4f9607",
|
||||
"src/libGLESv2/proc_table_egl_autogen.cpp":
|
||||
"a51c859c721dcd1b53a01a60520fad56"
|
||||
"0154d2734e6d89520d3697890df2164e"
|
||||
}
|
||||
@@ -34,7 +34,7 @@
|
||||
<param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
|
||||
</command>
|
||||
<command>
|
||||
<proto><ptype>EGLBoolean</ptype> <name>eglGetMscRateCHROMIUM</name></proto>
|
||||
<proto><ptype>EGLBoolean</ptype> <name>eglGetMscRateANGLE</name></proto>
|
||||
<param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
|
||||
<param><ptype>EGLSurface</ptype> <name>surface</name></param>
|
||||
<param><ptype>EGLint</ptype> *<name>numerator</name></param>
|
||||
@@ -118,7 +118,11 @@
|
||||
<extension name="EGL_CHROMIUM_sync_control" supported="egl">
|
||||
<require>
|
||||
<command name="eglGetSyncValuesCHROMIUM"/>
|
||||
<command name="eglGetMscRateCHROMIUM"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="EGL_ANGLE_sync_control_rate" supported="egl">
|
||||
<require>
|
||||
<command name="eglGetMscRateANGLE"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="EGL_ANGLE_program_cache_control" supported="egl">
|
||||
|
||||
@@ -129,6 +129,7 @@ supported_egl_extensions = [
|
||||
"EGL_ANGLE_swap_with_frame_token",
|
||||
"EGL_ANGLE_window_fixed_size",
|
||||
"EGL_CHROMIUM_sync_control",
|
||||
"EGL_ANGLE_sync_control_rate",
|
||||
"EGL_EXT_create_context_robustness",
|
||||
"EGL_EXT_device_query",
|
||||
"EGL_EXT_pixel_format_float",
|
||||
|
||||
@@ -1348,6 +1348,7 @@ std::vector<std::string> DisplayExtensions::getStrings() const
|
||||
InsertExtensionString("EGL_ANGLE_create_context_webgl_compatibility", createContextWebGLCompatibility, &extensionStrings);
|
||||
InsertExtensionString("EGL_CHROMIUM_create_context_bind_generates_resource", createContextBindGeneratesResource, &extensionStrings);
|
||||
InsertExtensionString("EGL_CHROMIUM_sync_control", syncControlCHROMIUM, &extensionStrings);
|
||||
InsertExtensionString("EGL_ANGLE_sync_control_rate", syncControlRateANGLE, &extensionStrings);
|
||||
InsertExtensionString("EGL_KHR_swap_buffers_with_damage", swapBuffersWithDamage, &extensionStrings);
|
||||
InsertExtensionString("EGL_EXT_pixel_format_float", pixelFormatFloat, &extensionStrings);
|
||||
InsertExtensionString("EGL_KHR_surfaceless_context", surfacelessContext, &extensionStrings);
|
||||
|
||||
@@ -950,6 +950,9 @@ struct DisplayExtensions
|
||||
// EGL_CHROMIUM_sync_control
|
||||
bool syncControlCHROMIUM = false;
|
||||
|
||||
// EGL_ANGLE_sync_control_rate
|
||||
bool syncControlRateANGLE = false;
|
||||
|
||||
// EGL_KHR_swap_buffers_with_damage
|
||||
bool swapBuffersWithDamage = false;
|
||||
|
||||
|
||||
@@ -830,7 +830,9 @@ void DisplayGLX::generateExtensions(egl::DisplayExtensions *outExtensions) const
|
||||
|
||||
outExtensions->surfacelessContext = true;
|
||||
|
||||
outExtensions->syncControlCHROMIUM = mGLX.hasExtension("GLX_OML_sync_control");
|
||||
const bool hasSyncControlOML = mGLX.hasExtension("GLX_OML_sync_control");
|
||||
outExtensions->syncControlCHROMIUM = hasSyncControlOML;
|
||||
outExtensions->syncControlRateANGLE = hasSyncControlOML;
|
||||
|
||||
DisplayGL::generateExtensions(outExtensions);
|
||||
}
|
||||
|
||||
@@ -3147,12 +3147,26 @@ Error ValidateSyncControlCHROMIUM(const Display *display, const Surface *eglSurf
|
||||
return NoError();
|
||||
}
|
||||
|
||||
Error ValidateGetMscRateCHROMIUM(const Display *display,
|
||||
const Surface *eglSurface,
|
||||
const EGLint *numerator,
|
||||
const EGLint *denominator)
|
||||
Error ValidateSyncControlRateANGLE(const Display *display, const Surface *eglSurface)
|
||||
{
|
||||
ANGLE_TRY(ValidateSyncControlCHROMIUM(display, eglSurface));
|
||||
ANGLE_TRY(ValidateDisplay(display));
|
||||
ANGLE_TRY(ValidateSurface(display, eglSurface));
|
||||
|
||||
const DisplayExtensions &displayExtensions = display->getExtensions();
|
||||
if (!displayExtensions.syncControlRateANGLE)
|
||||
{
|
||||
return EglBadAccess() << "syncControlRateANGLE extension not active";
|
||||
}
|
||||
|
||||
return NoError();
|
||||
}
|
||||
|
||||
Error ValidateGetMscRateANGLE(const Display *display,
|
||||
const Surface *eglSurface,
|
||||
const EGLint *numerator,
|
||||
const EGLint *denominator)
|
||||
{
|
||||
ANGLE_TRY(ValidateSyncControlRateANGLE(display, eglSurface));
|
||||
|
||||
if (numerator == nullptr)
|
||||
{
|
||||
|
||||
@@ -174,10 +174,10 @@ Error ValidateStreamPostD3DTextureANGLE(const Display *display,
|
||||
void *texture,
|
||||
const AttributeMap &attribs);
|
||||
|
||||
Error ValidateGetMscRateCHROMIUM(const Display *display,
|
||||
const Surface *surface,
|
||||
const EGLint *numerator,
|
||||
const EGLint *denominator);
|
||||
Error ValidateGetMscRateANGLE(const Display *display,
|
||||
const Surface *surface,
|
||||
const EGLint *numerator,
|
||||
const EGLint *denominator);
|
||||
Error ValidateGetSyncValuesCHROMIUM(const Display *display,
|
||||
const Surface *surface,
|
||||
const EGLuint64KHR *ust,
|
||||
|
||||
@@ -75,7 +75,7 @@ PFNEGLQUERYSURFACEPOINTERANGLEPROC EGL_QuerySurfacePointerANGLE;
|
||||
PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC EGL_CreateStreamProducerD3DTextureANGLE;
|
||||
PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC EGL_StreamPostD3DTextureANGLE;
|
||||
PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC EGL_SwapBuffersWithFrameTokenANGLE;
|
||||
PFNEGLGETMSCRATECHROMIUMPROC EGL_GetMscRateCHROMIUM;
|
||||
PFNEGLGETMSCRATEANGLEPROC EGL_GetMscRateANGLE;
|
||||
PFNEGLGETSYNCVALUESCHROMIUMPROC EGL_GetSyncValuesCHROMIUM;
|
||||
PFNEGLQUERYDEVICEATTRIBEXTPROC EGL_QueryDeviceAttribEXT;
|
||||
PFNEGLQUERYDEVICESTRINGEXTPROC EGL_QueryDeviceStringEXT;
|
||||
@@ -210,8 +210,8 @@ void LoadEGL_EGL(LoadProc loadProc)
|
||||
loadProc("EGL_StreamPostD3DTextureANGLE"));
|
||||
EGL_SwapBuffersWithFrameTokenANGLE = reinterpret_cast<PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC>(
|
||||
loadProc("EGL_SwapBuffersWithFrameTokenANGLE"));
|
||||
EGL_GetMscRateCHROMIUM =
|
||||
reinterpret_cast<PFNEGLGETMSCRATECHROMIUMPROC>(loadProc("EGL_GetMscRateCHROMIUM"));
|
||||
EGL_GetMscRateANGLE =
|
||||
reinterpret_cast<PFNEGLGETMSCRATEANGLEPROC>(loadProc("EGL_GetMscRateANGLE"));
|
||||
EGL_GetSyncValuesCHROMIUM =
|
||||
reinterpret_cast<PFNEGLGETSYNCVALUESCHROMIUMPROC>(loadProc("EGL_GetSyncValuesCHROMIUM"));
|
||||
EGL_QueryDeviceAttribEXT =
|
||||
|
||||
@@ -83,7 +83,7 @@ ANGLE_NO_EXPORT extern PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
|
||||
EGL_CreateStreamProducerD3DTextureANGLE;
|
||||
ANGLE_NO_EXPORT extern PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC EGL_StreamPostD3DTextureANGLE;
|
||||
ANGLE_NO_EXPORT extern PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC EGL_SwapBuffersWithFrameTokenANGLE;
|
||||
ANGLE_NO_EXPORT extern PFNEGLGETMSCRATECHROMIUMPROC EGL_GetMscRateCHROMIUM;
|
||||
ANGLE_NO_EXPORT extern PFNEGLGETMSCRATEANGLEPROC EGL_GetMscRateANGLE;
|
||||
ANGLE_NO_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC EGL_GetSyncValuesCHROMIUM;
|
||||
ANGLE_NO_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC EGL_QueryDeviceAttribEXT;
|
||||
ANGLE_NO_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC EGL_QueryDeviceStringEXT;
|
||||
|
||||
@@ -572,13 +572,13 @@ EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
|
||||
return EGL_GetSyncValuesCHROMIUM(dpy, surface, ust, msc, sbc);
|
||||
}
|
||||
|
||||
EGLBoolean EGLAPIENTRY eglGetMscRateCHROMIUM(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator)
|
||||
EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator)
|
||||
{
|
||||
EnsureEGLLoaded();
|
||||
return EGL_GetMscRateCHROMIUM(dpy, surface, numerator, denominator);
|
||||
return EGL_GetMscRateANGLE(dpy, surface, numerator, denominator);
|
||||
}
|
||||
|
||||
EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR(EGLDisplay dpy,
|
||||
|
||||
@@ -74,7 +74,7 @@ EXPORTS
|
||||
eglQueryStringiANGLE @80
|
||||
eglGetNativeClientBufferANDROID @81
|
||||
eglDupNativeFenceFDANDROID @82
|
||||
eglGetMscRateCHROMIUM @83
|
||||
eglGetMscRateANGLE @83
|
||||
|
||||
; 1.5 entry points
|
||||
eglCreateSync @38
|
||||
|
||||
@@ -1020,10 +1020,10 @@ ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_WaitSyncKHR(EGLDisplay dpy, EGLSync sync
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
EGLBoolean EGLAPIENTRY EGL_GetMscRateCHROMIUM(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator)
|
||||
EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator)
|
||||
{
|
||||
ANGLE_SCOPED_GLOBAL_LOCK();
|
||||
FUNC_EVENT("EGLDisplay dpy = 0x%016" PRIxPTR ", EGLSurface surface = 0x%016" PRIxPTR
|
||||
@@ -1036,10 +1036,10 @@ EGLBoolean EGLAPIENTRY EGL_GetMscRateCHROMIUM(EGLDisplay dpy,
|
||||
egl::Display *display = static_cast<egl::Display *>(dpy);
|
||||
Surface *eglSurface = static_cast<Surface *>(surface);
|
||||
|
||||
Error error = ValidateGetMscRateCHROMIUM(display, eglSurface, numerator, denominator);
|
||||
Error error = ValidateGetMscRateANGLE(display, eglSurface, numerator, denominator);
|
||||
if (error.isError())
|
||||
{
|
||||
thread->setError(error, GetDebug(), "eglGetMscRateCHROMIUM",
|
||||
thread->setError(error, GetDebug(), "eglGetMscRateANGLE",
|
||||
GetSurfaceIfValid(display, eglSurface));
|
||||
return EGL_FALSE;
|
||||
}
|
||||
@@ -1047,7 +1047,7 @@ EGLBoolean EGLAPIENTRY EGL_GetMscRateCHROMIUM(EGLDisplay dpy,
|
||||
error = eglSurface->getMscRate(numerator, denominator);
|
||||
if (error.isError())
|
||||
{
|
||||
thread->setError(error, GetDebug(), "eglGetMscRateCHROMIUM",
|
||||
thread->setError(error, GetDebug(), "eglGetMscRateANGLE",
|
||||
GetSurfaceIfValid(display, eglSurface));
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
@@ -134,10 +134,12 @@ ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetSyncValuesCHROMIUM(EGLDisplay dpy,
|
||||
EGLuint64KHR *ust,
|
||||
EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc);
|
||||
ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetMscRateCHROMIUM(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator);
|
||||
|
||||
// EGL_ANGLE_sync_control_rate
|
||||
ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy,
|
||||
EGLSurface surface,
|
||||
EGLint *numerator,
|
||||
EGLint *denominator);
|
||||
|
||||
// EGL_KHR_swap_buffers_with_damage
|
||||
ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithDamageKHR(EGLDisplay dpy,
|
||||
|
||||
@@ -1672,8 +1672,10 @@ EXPORTS
|
||||
; EGL_ANGLE_swap_with_frame_token
|
||||
EGL_SwapBuffersWithFrameTokenANGLE
|
||||
|
||||
; EGL_ANGLE_sync_control_rate
|
||||
EGL_GetMscRateANGLE
|
||||
|
||||
; EGL_CHROMIUM_sync_control
|
||||
EGL_GetMscRateCHROMIUM
|
||||
EGL_GetSyncValuesCHROMIUM
|
||||
|
||||
; EGL_EXT_device_query
|
||||
|
||||
@@ -1672,8 +1672,10 @@ EXPORTS
|
||||
; EGL_ANGLE_swap_with_frame_token
|
||||
EGL_SwapBuffersWithFrameTokenANGLE
|
||||
|
||||
; EGL_ANGLE_sync_control_rate
|
||||
EGL_GetMscRateANGLE
|
||||
|
||||
; EGL_CHROMIUM_sync_control
|
||||
EGL_GetMscRateCHROMIUM
|
||||
EGL_GetSyncValuesCHROMIUM
|
||||
|
||||
; EGL_EXT_device_query
|
||||
|
||||
@@ -1672,8 +1672,10 @@ EXPORTS
|
||||
; EGL_ANGLE_swap_with_frame_token
|
||||
EGL_SwapBuffersWithFrameTokenANGLE
|
||||
|
||||
; EGL_ANGLE_sync_control_rate
|
||||
EGL_GetMscRateANGLE
|
||||
|
||||
; EGL_CHROMIUM_sync_control
|
||||
EGL_GetMscRateCHROMIUM
|
||||
EGL_GetSyncValuesCHROMIUM
|
||||
|
||||
; EGL_EXT_device_query
|
||||
|
||||
@@ -71,7 +71,7 @@ ProcEntry g_procTable[] = {
|
||||
{"eglGetError", P(EGL_GetError)},
|
||||
{"eglGetFrameTimestampSupportedANDROID", P(EGL_GetFrameTimestampSupportedANDROID)},
|
||||
{"eglGetFrameTimestampsANDROID", P(EGL_GetFrameTimestampsANDROID)},
|
||||
{"eglGetMscRateCHROMIUM", P(EGL_GetMscRateCHROMIUM)},
|
||||
{"eglGetMscRateANGLE", P(EGL_GetMscRateANGLE)},
|
||||
{"eglGetNativeClientBufferANDROID", P(EGL_GetNativeClientBufferANDROID)},
|
||||
{"eglGetNextFrameIdANDROID", P(EGL_GetNextFrameIdANDROID)},
|
||||
{"eglGetPlatformDisplay", P(EGL_GetPlatformDisplay)},
|
||||
|
||||
@@ -77,7 +77,7 @@ ANGLE_UTIL_EXPORT PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
|
||||
eglCreateStreamProducerD3DTextureANGLE;
|
||||
ANGLE_UTIL_EXPORT PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC eglStreamPostD3DTextureANGLE;
|
||||
ANGLE_UTIL_EXPORT PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC eglSwapBuffersWithFrameTokenANGLE;
|
||||
ANGLE_UTIL_EXPORT PFNEGLGETMSCRATECHROMIUMPROC eglGetMscRateCHROMIUM;
|
||||
ANGLE_UTIL_EXPORT PFNEGLGETMSCRATEANGLEPROC eglGetMscRateANGLE;
|
||||
ANGLE_UTIL_EXPORT PFNEGLGETSYNCVALUESCHROMIUMPROC eglGetSyncValuesCHROMIUM;
|
||||
ANGLE_UTIL_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC eglQueryDeviceAttribEXT;
|
||||
ANGLE_UTIL_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
|
||||
@@ -214,8 +214,8 @@ void LoadEGL(LoadProc loadProc)
|
||||
loadProc("eglStreamPostD3DTextureANGLE"));
|
||||
eglSwapBuffersWithFrameTokenANGLE = reinterpret_cast<PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC>(
|
||||
loadProc("eglSwapBuffersWithFrameTokenANGLE"));
|
||||
eglGetMscRateCHROMIUM =
|
||||
reinterpret_cast<PFNEGLGETMSCRATECHROMIUMPROC>(loadProc("eglGetMscRateCHROMIUM"));
|
||||
eglGetMscRateANGLE =
|
||||
reinterpret_cast<PFNEGLGETMSCRATEANGLEPROC>(loadProc("eglGetMscRateANGLE"));
|
||||
eglGetSyncValuesCHROMIUM =
|
||||
reinterpret_cast<PFNEGLGETSYNCVALUESCHROMIUMPROC>(loadProc("eglGetSyncValuesCHROMIUM"));
|
||||
eglQueryDeviceAttribEXT =
|
||||
|
||||
@@ -84,7 +84,7 @@ ANGLE_UTIL_EXPORT extern PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
|
||||
eglCreateStreamProducerD3DTextureANGLE;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC eglStreamPostD3DTextureANGLE;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC eglSwapBuffersWithFrameTokenANGLE;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLGETMSCRATECHROMIUMPROC eglGetMscRateCHROMIUM;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLGETMSCRATEANGLEPROC eglGetMscRateANGLE;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC eglGetSyncValuesCHROMIUM;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC eglQueryDeviceAttribEXT;
|
||||
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
|
||||
|
||||
Reference in New Issue
Block a user