• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3   ANGLE_sync_control_rate
4
5Name Strings
6
7   EGL_ANGLE_sync_control_rate
8
9Contact
10
11   Jonah Ryan-Davis, Google (jonahr 'at' google.com)
12
13Status
14
15   Draft.
16
17Version
18
19   Version 1, 2020-03-24
20
21   Based on GLX_OML_sync_control Revision 6.0
22   Related to EGL_CHROMIUM_sync_control Revision 2.0
23
24Number
25
26   142
27
28Dependencies
29
30   The extension is written against the EGL 1.2 Specification, although it
31   should work on other versions of these specifications.
32
33Overview
34
35   This extension provides counters which let applications know about the
36   timing of the last vertical retrace. By looking at the system clock, as
37   well as the refresh rate of the monitor, this should enable applications
38   to predict the position of future retraces so as to schedule an optimal
39   workload.
40
41   This extension incorporates the use of a counter that provides the
42   necessary synchronization. The graphics Media Stream Counter (or
43   graphics MSC) is a counter that is unique to the graphics subsystem
44   and increments for each vertical retrace that occurs.
45
46   By querying the MSC rate for a given surface, the application can
47   accurately predict the timing for the next vertical retraces and schedule
48   rendering accordingly.
49
50Issues
51
52   None.
53
54IP Status
55
56   No known issues.
57
58New Procedures and Functions
59
60   Bool eglGetMscRateANGLE(EGLDisplay* dpy,
61                           EGLSurface surface,
62                           int32_t* numerator,
63                           int32_t* denominator)
64
65New Tokens
66
67   None
68
69Additions to the EGL 1.3 Specification
70
71   The graphics MSC value is incremented once for each screen refresh.
72   For a non-interlaced display, this means that the graphics MSC value
73   is incremented for each frame. For an interlaced display, it means
74   that it will be incremented for each field. For a multi-monitor
75   system, the monitor used to determine MSC is the one where the surface
76   is located. If the surface spans multiple monitors, the monitor used
77   to determine MSC is the one with the biggest coverage in pixels.
78
79   eglGetMscRateANGLE returns the rate at which the MSC will be incremented
80   for the display associated with <dpy> and <surface>. The rate is expressed
81   in Hertz as <numerator> / <denominator>. If the MSC rate in Hertz is an
82   integer, then <denominator> will be 1 and <numerator> will be
83   the MSC rate.
84
85Errors
86
87   The function eglGetMscRateANGLE returns FALSE on failure.
88   If <dpy> is not a valid EGLDisplay, EGL_BAD_DISPLAY is generated.
89   If <surface> is not a valid EGLSurface, EGL_BAD_SURFACE is generated.
90   If there is no current EGLContext, EGL_BAD_CONTEXT is generated.
91
92New Implementation Dependent State
93
94   None
95
96Revision History
97
98    Version 1, 2020-03-24 (Jonah Ryan-Davis)
99       - Initial draft, based on GLX_OML_sync_control revision 6.0.
100