Commit f3a38d97 by Jamie Madill Committed by Commit Bot

Add a custom trace tests loader.

This custom loader will disambiguate the trace tests gl layer from the util GL/EGL loader. Bug: angleproject:4845 Change-Id: I5e8340eb50f736d931302f71f15f556fd9e52081 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315627 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com> Reviewed-by: 's avatarManh Nguyen <nguyenmh@google.com>
parent 2c41931c
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"scripts/egl_angle_ext.xml": "scripts/egl_angle_ext.xml":
"087d6a3996a91fbb0b664cac57c50c4c", "087d6a3996a91fbb0b664cac57c50c4c",
"scripts/generate_loader.py": "scripts/generate_loader.py":
"c6c02d859fabc61410470f50198a5a80", "92c731390cf5c0305ea57a3661a01240",
"scripts/gl.xml": "scripts/gl.xml":
"e74a595068cbdd6064300be1e71b7cc9", "e74a595068cbdd6064300be1e71b7cc9",
"scripts/gl_angle_ext.xml": "scripts/gl_angle_ext.xml":
...@@ -17,6 +17,14 @@ ...@@ -17,6 +17,14 @@
"394c31d7e61b285be5bc6a2cb8325a8d", "394c31d7e61b285be5bc6a2cb8325a8d",
"src/libEGL/egl_loader_autogen.h": "src/libEGL/egl_loader_autogen.h":
"343b43d7318884204c0699cfaa8ef2dc", "343b43d7318884204c0699cfaa8ef2dc",
"src/tests/perf_tests/restricted_traces/trace_egl_loader_autogen.cpp":
"fa2cce11eef7e995c62c31da0658a5da",
"src/tests/perf_tests/restricted_traces/trace_egl_loader_autogen.h":
"389cf2453f8359538c391e58cd6a84d2",
"src/tests/perf_tests/restricted_traces/trace_gles_loader_autogen.cpp":
"7918a0ca5fd9efa5d7c67be5ab7ac3de",
"src/tests/perf_tests/restricted_traces/trace_gles_loader_autogen.h":
"5b3100dda9f66e388d0a6cbb49810e1b",
"util/egl_loader_autogen.cpp": "util/egl_loader_autogen.cpp":
"6eb720862e78992d0ed3abfe50bfa0ff", "6eb720862e78992d0ed3abfe50bfa0ff",
"util/egl_loader_autogen.h": "util/egl_loader_autogen.h":
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"src/tests/perf_tests/restricted_traces/egypt_1500.tar.gz.sha1": "src/tests/perf_tests/restricted_traces/egypt_1500.tar.gz.sha1":
"1d80caa37b937f83c95cd053b1bdd4ac", "1d80caa37b937f83c95cd053b1bdd4ac",
"src/tests/perf_tests/restricted_traces/gen_restricted_traces.py": "src/tests/perf_tests/restricted_traces/gen_restricted_traces.py":
"8f72f02cfb21ad18c3558d38b77320cc", "79d6e6bcdcea1bf7236091183d34dd9e",
"src/tests/perf_tests/restricted_traces/manhattan_10.tar.gz.sha1": "src/tests/perf_tests/restricted_traces/manhattan_10.tar.gz.sha1":
"752781119592a190cc02b773adf38fc3", "752781119592a190cc02b773adf38fc3",
"src/tests/perf_tests/restricted_traces/nba2k20_800.tar.gz.sha1": "src/tests/perf_tests/restricted_traces/nba2k20_800.tar.gz.sha1":
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
"src/tests/perf_tests/restricted_traces/restricted_traces_autogen.gni": "src/tests/perf_tests/restricted_traces/restricted_traces_autogen.gni":
"7edfef5f418500f6092127065e3e894f", "7edfef5f418500f6092127065e3e894f",
"src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h": "src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h":
"38e25e80888e80d149e236456fed1715", "961c4192564a6198c8114969baa32bb7",
"src/tests/perf_tests/restricted_traces/subway_surfer_500.tar.gz.sha1": "src/tests/perf_tests/restricted_traces/subway_surfer_500.tar.gz.sha1":
"a47a797dd227f5025439b47cee80dbc9", "a47a797dd227f5025439b47cee80dbc9",
"src/tests/perf_tests/restricted_traces/temple_run_300.tar.gz.sha1": "src/tests/perf_tests/restricted_traces/temple_run_300.tar.gz.sha1":
......
...@@ -13,7 +13,7 @@ from datetime import date ...@@ -13,7 +13,7 @@ from datetime import date
import registry_xml import registry_xml
internal_prefix = "l_" DEFAULT_INTERNAL_PREFIX = "l_"
def write_header(data_source_name, def write_header(data_source_name,
...@@ -24,8 +24,10 @@ def write_header(data_source_name, ...@@ -24,8 +24,10 @@ def write_header(data_source_name,
lib, lib,
ns="", ns="",
prefix=None, prefix=None,
export=""): export="",
file_name = "%s_loader_autogen.h" % api internal_prefix=DEFAULT_INTERNAL_PREFIX,
file_prefix=""):
file_name = "%s%s_loader_autogen.h" % (file_prefix, api)
header_path = registry_xml.path_to(path, file_name) header_path = registry_xml.path_to(path, file_name)
def pre(cmd): def pre(cmd):
...@@ -53,14 +55,23 @@ def write_header(data_source_name, ...@@ -53,14 +55,23 @@ def write_header(data_source_name,
preamble=preamble, preamble=preamble,
export=export, export=export,
lib=lib.upper(), lib=lib.upper(),
load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper())) load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper()),
file_prefix=file_prefix)
out.write(loader_header) out.write(loader_header)
out.close() out.close()
def write_source(data_source_name, all_cmds, api, path, ns="", prefix=None, export=""): def write_source(data_source_name,
file_name = "%s_loader_autogen.cpp" % api all_cmds,
api,
path,
ns="",
prefix=None,
export="",
internal_prefix=DEFAULT_INTERNAL_PREFIX,
file_prefix=""):
file_name = "%s%s_loader_autogen.cpp" % (file_prefix, api)
source_path = registry_xml.path_to(path, file_name) source_path = registry_xml.path_to(path, file_name)
def pre(cmd): def pre(cmd):
...@@ -87,7 +98,8 @@ def write_source(data_source_name, all_cmds, api, path, ns="", prefix=None, expo ...@@ -87,7 +98,8 @@ def write_source(data_source_name, all_cmds, api, path, ns="", prefix=None, expo
set_pointers="\n".join(setters), set_pointers="\n".join(setters),
api_upper=api.upper(), api_upper=api.upper(),
api_lower=api, api_lower=api,
load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper())) load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper()),
file_prefix=file_prefix)
out.write(loader_source) out.write(loader_source)
out.close() out.close()
...@@ -123,7 +135,7 @@ def gen_libegl_loader(): ...@@ -123,7 +135,7 @@ def gen_libegl_loader():
write_source(data_source_name, all_cmds, "egl", path, prefix="EGL_") write_source(data_source_name, all_cmds, "egl", path, prefix="EGL_")
def gen_gl_loader(): def gen_gles_loader(gles_preamble, path, header_lib, export, internal_prefix, file_prefix):
data_source_name = "gl.xml and gl_angle_ext.xml" data_source_name = "gl.xml and gl_angle_ext.xml"
xml = registry_xml.RegistryXML("gl.xml", "gl_angle_ext.xml") xml = registry_xml.RegistryXML("gl.xml", "gl_angle_ext.xml")
...@@ -149,13 +161,27 @@ def gen_gl_loader(): ...@@ -149,13 +161,27 @@ def gen_gl_loader():
if registry_xml.support_EGL_ANGLE_explicit_context: if registry_xml.support_EGL_ANGLE_explicit_context:
all_cmds += [cmd + "ContextANGLE" for cmd in xml.all_cmd_names.get_all_commands()] all_cmds += [cmd + "ContextANGLE" for cmd in xml.all_cmd_names.get_all_commands()]
path = os.path.join("..", "util") write_header(
ex = "ANGLE_UTIL_EXPORT " data_source_name,
write_header(data_source_name, all_cmds, "gles", util_gles_preamble, path, "UTIL", export=ex) all_cmds,
write_source(data_source_name, all_cmds, "gles", path, export=ex) "gles",
gles_preamble,
path,
header_lib,
export=export,
internal_prefix=internal_prefix,
file_prefix=file_prefix)
write_source(
data_source_name,
all_cmds,
"gles",
path,
export=export,
internal_prefix=internal_prefix,
file_prefix=file_prefix)
def gen_egl_loader(): def gen_egl_loader(egl_preamble, path, header_lib, export, internal_prefix, file_prefix):
data_source_name = "egl.xml and egl_angle_ext.xml" data_source_name = "egl.xml and egl_angle_ext.xml"
xml = registry_xml.RegistryXML("egl.xml", "egl_angle_ext.xml") xml = registry_xml.RegistryXML("egl.xml", "egl_angle_ext.xml")
...@@ -172,13 +198,43 @@ def gen_egl_loader(): ...@@ -172,13 +198,43 @@ def gen_egl_loader():
all_cmds = xml.all_cmd_names.get_all_commands() all_cmds = xml.all_cmd_names.get_all_commands()
write_header(
data_source_name,
all_cmds,
"egl",
egl_preamble,
path,
header_lib,
export=export,
internal_prefix=internal_prefix,
file_prefix=file_prefix)
write_source(
data_source_name,
all_cmds,
"egl",
path,
export=export,
internal_prefix=internal_prefix,
file_prefix=file_prefix)
def gen_util_gles_and_egl_loaders():
path = os.path.join("..", "util") path = os.path.join("..", "util")
ex = "ANGLE_UTIL_EXPORT " export = "ANGLE_UTIL_EXPORT "
write_header(data_source_name, all_cmds, "egl", util_egl_preamble, path, "UTIL", export=ex) lib = "UTIL"
write_source(data_source_name, all_cmds, "egl", path, export=ex) gen_gles_loader(util_gles_preamble, path, lib, export, DEFAULT_INTERNAL_PREFIX, "")
gen_egl_loader(util_egl_preamble, path, lib, export, DEFAULT_INTERNAL_PREFIX, "")
def gen_wgl_loader(): def gen_trace_gles_and_egl_loaders():
path = os.path.join("..", "src", "tests", "perf_tests", "restricted_traces")
export = "ANGLE_TRACE_EXPORT "
lib = "ANGLE_RESTRICTED_TRACES"
gen_gles_loader(trace_gles_preamble, path, lib, export, "t_", "trace_")
gen_egl_loader(trace_egl_preamble, path, lib, export, "t_", "trace_")
def gen_util_wgl_loader():
supported_wgl_extensions = [ supported_wgl_extensions = [
"WGL_ARB_create_context", "WGL_ARB_create_context",
...@@ -227,6 +283,10 @@ def main(): ...@@ -227,6 +283,10 @@ def main():
'../util/gles_loader_autogen.h', '../util/gles_loader_autogen.h',
'../util/windows/wgl_loader_autogen.cpp', '../util/windows/wgl_loader_autogen.cpp',
'../util/windows/wgl_loader_autogen.h', '../util/windows/wgl_loader_autogen.h',
'../src/tests/perf_tests/restricted_traces/trace_egl_loader_autogen.cpp',
'../src/tests/perf_tests/restricted_traces/trace_egl_loader_autogen.h',
'../src/tests/perf_tests/restricted_traces/trace_gles_loader_autogen.cpp',
'../src/tests/perf_tests/restricted_traces/trace_gles_loader_autogen.h',
] ]
if sys.argv[1] == 'inputs': if sys.argv[1] == 'inputs':
...@@ -239,9 +299,9 @@ def main(): ...@@ -239,9 +299,9 @@ def main():
return 0 return 0
gen_libegl_loader() gen_libegl_loader()
gen_gl_loader() gen_util_gles_and_egl_loaders()
gen_egl_loader() gen_util_wgl_loader()
gen_wgl_loader() gen_trace_gles_and_egl_loaders()
return 0 return 0
...@@ -264,6 +324,20 @@ util_egl_preamble = """#include "util/util_export.h" ...@@ -264,6 +324,20 @@ util_egl_preamble = """#include "util/util_export.h"
#include <EGL/eglext.h> #include <EGL/eglext.h>
""" """
trace_gles_preamble = """#if defined(GL_GLES_PROTOTYPES) && GL_GLES_PROTOTYPES
#error "Don't define GL prototypes if you want to use a loader!"
#endif // defined(GL_GLES_PROTOTYPES)
#include "angle_gl.h"
#include "restricted_traces_autogen.h"
"""
trace_egl_preamble = """#include "restricted_traces_autogen.h"
#include <EGL/egl.h>
#include <EGL/eglext.h>
"""
util_wgl_preamble = """ util_wgl_preamble = """
#include <WGL/wgl.h> #include <WGL/wgl.h>
#include <GLES2/gl2.h> #include <GLES2/gl2.h>
...@@ -290,7 +364,7 @@ template_loader_h = """// GENERATED FILE - DO NOT EDIT. ...@@ -290,7 +364,7 @@ template_loader_h = """// GENERATED FILE - DO NOT EDIT.
{defines} {defines}
{function_pointers} {function_pointers}
namespace angle namespace {file_prefix}angle
{{ {{
using GenericProc = void (*)(); using GenericProc = void (*)();
using LoadProc = GenericProc (KHRONOS_APIENTRY *)(const char *); using LoadProc = GenericProc (KHRONOS_APIENTRY *)(const char *);
...@@ -310,11 +384,11 @@ template_loader_cpp = """// GENERATED FILE - DO NOT EDIT. ...@@ -310,11 +384,11 @@ template_loader_cpp = """// GENERATED FILE - DO NOT EDIT.
// {api_lower}_loader_autogen.cpp: // {api_lower}_loader_autogen.cpp:
// Simple {api_upper} function loader. // Simple {api_upper} function loader.
#include "{api_lower}_loader_autogen.h" #include "{file_prefix}{api_lower}_loader_autogen.h"
{function_pointers} {function_pointers}
namespace angle namespace {file_prefix}angle
{{ {{
void {load_fn_name}(LoadProc loadProc) void {load_fn_name}(LoadProc loadProc)
{{ {{
......
...@@ -296,6 +296,10 @@ if (is_win || is_linux || is_android || is_mac || is_fuchsia) { ...@@ -296,6 +296,10 @@ if (is_win || is_linux || is_android || is_mac || is_fuchsia) {
"perf_tests/restricted_traces/angle_trace_gl.h", "perf_tests/restricted_traces/angle_trace_gl.h",
"perf_tests/restricted_traces/restricted_traces_autogen.cpp", "perf_tests/restricted_traces/restricted_traces_autogen.cpp",
"perf_tests/restricted_traces/restricted_traces_autogen.h", "perf_tests/restricted_traces/restricted_traces_autogen.h",
"perf_tests/restricted_traces/trace_egl_loader_autogen.cpp",
"perf_tests/restricted_traces/trace_egl_loader_autogen.h",
"perf_tests/restricted_traces/trace_gles_loader_autogen.cpp",
"perf_tests/restricted_traces/trace_gles_loader_autogen.h",
] ]
data = [] data = []
......
...@@ -99,6 +99,24 @@ class TracePerfTest : public ANGLERenderTest, public ::testing::WithParamInterfa ...@@ -99,6 +99,24 @@ class TracePerfTest : public ANGLERenderTest, public ::testing::WithParamInterfa
std::string mStartingDirectory; std::string mStartingDirectory;
}; };
class TracePerfTest;
TracePerfTest *gCurrentTracePerfTest = nullptr;
void BindFramebufferProc(GLenum target, GLuint framebuffer)
{
glBindFramebuffer(target, framebuffer);
gCurrentTracePerfTest->onReplayFramebufferChange(target, framebuffer);
}
angle::GenericProc KHRONOS_APIENTRY TraceLoadProc(const char *procName)
{
if (strcmp(procName, "glBindFramebuffer") == 0)
{
return reinterpret_cast<angle::GenericProc>(BindFramebufferProc);
}
return gCurrentTracePerfTest->getGLWindow()->getProcAddress(procName);
}
TracePerfTest::TracePerfTest() TracePerfTest::TracePerfTest()
: ANGLERenderTest("TracePerf", GetParam()), mStartFrame(0), mEndFrame(0) : ANGLERenderTest("TracePerf", GetParam()), mStartFrame(0), mEndFrame(0)
{ {
...@@ -120,6 +138,8 @@ TracePerfTest::TracePerfTest() ...@@ -120,6 +138,8 @@ TracePerfTest::TracePerfTest()
// We already swap in TracePerfTest::drawBenchmark, no need to swap again in the harness. // We already swap in TracePerfTest::drawBenchmark, no need to swap again in the harness.
disableTestHarnessSwap(); disableTestHarnessSwap();
gCurrentTracePerfTest = this;
} }
void TracePerfTest::initializeBenchmark() void TracePerfTest::initializeBenchmark()
...@@ -135,6 +155,8 @@ void TracePerfTest::initializeBenchmark() ...@@ -135,6 +155,8 @@ void TracePerfTest::initializeBenchmark()
angle::SetCWD(exeDir.c_str()); angle::SetCWD(exeDir.c_str());
} }
trace_angle::LoadGLES(TraceLoadProc);
const TraceInfo &traceInfo = GetTraceInfo(params.testID); const TraceInfo &traceInfo = GetTraceInfo(params.testID);
mStartFrame = traceInfo.startFrame; mStartFrame = traceInfo.startFrame;
mEndFrame = traceInfo.endFrame; mEndFrame = traceInfo.endFrame;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#ifndef ANGLE_TRACE_GL_H_ #ifndef ANGLE_TRACE_GL_H_
#define ANGLE_TRACE_GL_H_ #define ANGLE_TRACE_GL_H_
// TODO(jmadill): Bind to trace GL loader. http://anglebug.com/4845 #include "trace_egl_loader_autogen.h"
#include "util/util_gl.h" #include "trace_gles_loader_autogen.h"
#endif // ANGLE_TRACE_GL_H_ #endif // ANGLE_TRACE_GL_H_
...@@ -41,6 +41,7 @@ header_template = """// GENERATED FILE - DO NOT EDIT. ...@@ -41,6 +41,7 @@ header_template = """// GENERATED FILE - DO NOT EDIT.
#include <cstdint> #include <cstdint>
#include <vector> #include <vector>
#include <KHR/khrplatform.h>
// See util/util_export.h for details on import/export labels. // See util/util_export.h for details on import/export labels.
#if !defined(ANGLE_TRACE_EXPORT) #if !defined(ANGLE_TRACE_EXPORT)
...@@ -57,6 +58,13 @@ header_template = """// GENERATED FILE - DO NOT EDIT. ...@@ -57,6 +58,13 @@ header_template = """// GENERATED FILE - DO NOT EDIT.
# endif # endif
#endif // !defined(ANGLE_TRACE_EXPORT) #endif // !defined(ANGLE_TRACE_EXPORT)
namespace trace_angle
{{
using GenericProc = void (*)();
using LoadProc = GenericProc(KHRONOS_APIENTRY *)(const char *);
ANGLE_TRACE_EXPORT void LoadGLES(LoadProc loadProc);
}} // namespace trace_angle
namespace angle namespace angle
{{ {{
enum class RestrictedTraceID enum class RestrictedTraceID
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#ifndef ANGLE_RESTRICTED_TRACES_H_ #ifndef ANGLE_RESTRICTED_TRACES_H_
#define ANGLE_RESTRICTED_TRACES_H_ #define ANGLE_RESTRICTED_TRACES_H_
#include <KHR/khrplatform.h>
#include <cstdint> #include <cstdint>
#include <vector> #include <vector>
...@@ -28,6 +29,13 @@ ...@@ -28,6 +29,13 @@
# endif # endif
#endif // !defined(ANGLE_TRACE_EXPORT) #endif // !defined(ANGLE_TRACE_EXPORT)
namespace trace_angle
{
using GenericProc = void (*)();
using LoadProc = GenericProc(KHRONOS_APIENTRY *)(const char *);
ANGLE_TRACE_EXPORT void LoadGLES(LoadProc loadProc);
} // namespace trace_angle
namespace angle namespace angle
{ {
enum class RestrictedTraceID enum class RestrictedTraceID
......
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_loader.py using data from egl.xml and egl_angle_ext.xml.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// egl_loader_autogen.cpp:
// Simple EGL function loader.
#include "trace_egl_loader_autogen.h"
ANGLE_TRACE_EXPORT PFNEGLCHOOSECONFIGPROC t_eglChooseConfig;
ANGLE_TRACE_EXPORT PFNEGLCOPYBUFFERSPROC t_eglCopyBuffers;
ANGLE_TRACE_EXPORT PFNEGLCREATECONTEXTPROC t_eglCreateContext;
ANGLE_TRACE_EXPORT PFNEGLCREATEPBUFFERSURFACEPROC t_eglCreatePbufferSurface;
ANGLE_TRACE_EXPORT PFNEGLCREATEPIXMAPSURFACEPROC t_eglCreatePixmapSurface;
ANGLE_TRACE_EXPORT PFNEGLCREATEWINDOWSURFACEPROC t_eglCreateWindowSurface;
ANGLE_TRACE_EXPORT PFNEGLDESTROYCONTEXTPROC t_eglDestroyContext;
ANGLE_TRACE_EXPORT PFNEGLDESTROYSURFACEPROC t_eglDestroySurface;
ANGLE_TRACE_EXPORT PFNEGLGETCONFIGATTRIBPROC t_eglGetConfigAttrib;
ANGLE_TRACE_EXPORT PFNEGLGETCONFIGSPROC t_eglGetConfigs;
ANGLE_TRACE_EXPORT PFNEGLGETCURRENTDISPLAYPROC t_eglGetCurrentDisplay;
ANGLE_TRACE_EXPORT PFNEGLGETCURRENTSURFACEPROC t_eglGetCurrentSurface;
ANGLE_TRACE_EXPORT PFNEGLGETDISPLAYPROC t_eglGetDisplay;
ANGLE_TRACE_EXPORT PFNEGLGETERRORPROC t_eglGetError;
ANGLE_TRACE_EXPORT PFNEGLGETPROCADDRESSPROC t_eglGetProcAddress;
ANGLE_TRACE_EXPORT PFNEGLINITIALIZEPROC t_eglInitialize;
ANGLE_TRACE_EXPORT PFNEGLMAKECURRENTPROC t_eglMakeCurrent;
ANGLE_TRACE_EXPORT PFNEGLQUERYCONTEXTPROC t_eglQueryContext;
ANGLE_TRACE_EXPORT PFNEGLQUERYSTRINGPROC t_eglQueryString;
ANGLE_TRACE_EXPORT PFNEGLQUERYSURFACEPROC t_eglQuerySurface;
ANGLE_TRACE_EXPORT PFNEGLSWAPBUFFERSPROC t_eglSwapBuffers;
ANGLE_TRACE_EXPORT PFNEGLTERMINATEPROC t_eglTerminate;
ANGLE_TRACE_EXPORT PFNEGLWAITGLPROC t_eglWaitGL;
ANGLE_TRACE_EXPORT PFNEGLWAITNATIVEPROC t_eglWaitNative;
ANGLE_TRACE_EXPORT PFNEGLBINDTEXIMAGEPROC t_eglBindTexImage;
ANGLE_TRACE_EXPORT PFNEGLRELEASETEXIMAGEPROC t_eglReleaseTexImage;
ANGLE_TRACE_EXPORT PFNEGLSURFACEATTRIBPROC t_eglSurfaceAttrib;
ANGLE_TRACE_EXPORT PFNEGLSWAPINTERVALPROC t_eglSwapInterval;
ANGLE_TRACE_EXPORT PFNEGLBINDAPIPROC t_eglBindAPI;
ANGLE_TRACE_EXPORT PFNEGLQUERYAPIPROC t_eglQueryAPI;
ANGLE_TRACE_EXPORT PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC t_eglCreatePbufferFromClientBuffer;
ANGLE_TRACE_EXPORT PFNEGLRELEASETHREADPROC t_eglReleaseThread;
ANGLE_TRACE_EXPORT PFNEGLWAITCLIENTPROC t_eglWaitClient;
ANGLE_TRACE_EXPORT PFNEGLGETCURRENTCONTEXTPROC t_eglGetCurrentContext;
ANGLE_TRACE_EXPORT PFNEGLCREATESYNCPROC t_eglCreateSync;
ANGLE_TRACE_EXPORT PFNEGLDESTROYSYNCPROC t_eglDestroySync;
ANGLE_TRACE_EXPORT PFNEGLCLIENTWAITSYNCPROC t_eglClientWaitSync;
ANGLE_TRACE_EXPORT PFNEGLGETSYNCATTRIBPROC t_eglGetSyncAttrib;
ANGLE_TRACE_EXPORT PFNEGLCREATEIMAGEPROC t_eglCreateImage;
ANGLE_TRACE_EXPORT PFNEGLDESTROYIMAGEPROC t_eglDestroyImage;
ANGLE_TRACE_EXPORT PFNEGLGETPLATFORMDISPLAYPROC t_eglGetPlatformDisplay;
ANGLE_TRACE_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEPROC t_eglCreatePlatformWindowSurface;
ANGLE_TRACE_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC t_eglCreatePlatformPixmapSurface;
ANGLE_TRACE_EXPORT PFNEGLWAITSYNCPROC t_eglWaitSync;
ANGLE_TRACE_EXPORT PFNEGLSETBLOBCACHEFUNCSANDROIDPROC t_eglSetBlobCacheFuncsANDROID;
ANGLE_TRACE_EXPORT PFNEGLGETCOMPOSITORTIMINGANDROIDPROC t_eglGetCompositorTimingANDROID;
ANGLE_TRACE_EXPORT PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC
t_eglGetCompositorTimingSupportedANDROID;
ANGLE_TRACE_EXPORT PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC
t_eglGetFrameTimestampSupportedANDROID;
ANGLE_TRACE_EXPORT PFNEGLGETFRAMETIMESTAMPSANDROIDPROC t_eglGetFrameTimestampsANDROID;
ANGLE_TRACE_EXPORT PFNEGLGETNEXTFRAMEIDANDROIDPROC t_eglGetNextFrameIdANDROID;
ANGLE_TRACE_EXPORT PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC t_eglGetNativeClientBufferANDROID;
ANGLE_TRACE_EXPORT PFNEGLDUPNATIVEFENCEFDANDROIDPROC t_eglDupNativeFenceFDANDROID;
ANGLE_TRACE_EXPORT PFNEGLPRESENTATIONTIMEANDROIDPROC t_eglPresentationTimeANDROID;
ANGLE_TRACE_EXPORT PFNEGLCREATEDEVICEANGLEPROC t_eglCreateDeviceANGLE;
ANGLE_TRACE_EXPORT PFNEGLRELEASEDEVICEANGLEPROC t_eglReleaseDeviceANGLE;
ANGLE_TRACE_EXPORT PFNEGLQUERYDISPLAYATTRIBANGLEPROC t_eglQueryDisplayAttribANGLE;
ANGLE_TRACE_EXPORT PFNEGLQUERYSTRINGIANGLEPROC t_eglQueryStringiANGLE;
ANGLE_TRACE_EXPORT PFNEGLHANDLEGPUSWITCHANGLEPROC t_eglHandleGPUSwitchANGLE;
ANGLE_TRACE_EXPORT PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC t_eglReacquireHighPowerGPUANGLE;
ANGLE_TRACE_EXPORT PFNEGLRELEASEHIGHPOWERGPUANGLEPROC t_eglReleaseHighPowerGPUANGLE;
ANGLE_TRACE_EXPORT PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC t_eglProgramCacheGetAttribANGLE;
ANGLE_TRACE_EXPORT PFNEGLPROGRAMCACHEPOPULATEANGLEPROC t_eglProgramCachePopulateANGLE;
ANGLE_TRACE_EXPORT PFNEGLPROGRAMCACHEQUERYANGLEPROC t_eglProgramCacheQueryANGLE;
ANGLE_TRACE_EXPORT PFNEGLPROGRAMCACHERESIZEANGLEPROC t_eglProgramCacheResizeANGLE;
ANGLE_TRACE_EXPORT PFNEGLQUERYSURFACEPOINTERANGLEPROC t_eglQuerySurfacePointerANGLE;
ANGLE_TRACE_EXPORT PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
t_eglCreateStreamProducerD3DTextureANGLE;
ANGLE_TRACE_EXPORT PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC t_eglStreamPostD3DTextureANGLE;
ANGLE_TRACE_EXPORT PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC t_eglSwapBuffersWithFrameTokenANGLE;
ANGLE_TRACE_EXPORT PFNEGLGETMSCRATEANGLEPROC t_eglGetMscRateANGLE;
ANGLE_TRACE_EXPORT PFNEGLGETSYNCVALUESCHROMIUMPROC t_eglGetSyncValuesCHROMIUM;
ANGLE_TRACE_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC t_eglQueryDeviceAttribEXT;
ANGLE_TRACE_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC t_eglQueryDeviceStringEXT;
ANGLE_TRACE_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC t_eglQueryDisplayAttribEXT;
ANGLE_TRACE_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC t_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_TRACE_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC t_eglCreatePlatformWindowSurfaceEXT;
ANGLE_TRACE_EXPORT PFNEGLGETPLATFORMDISPLAYEXTPROC t_eglGetPlatformDisplayEXT;
ANGLE_TRACE_EXPORT PFNEGLDEBUGMESSAGECONTROLKHRPROC t_eglDebugMessageControlKHR;
ANGLE_TRACE_EXPORT PFNEGLLABELOBJECTKHRPROC t_eglLabelObjectKHR;
ANGLE_TRACE_EXPORT PFNEGLQUERYDEBUGKHRPROC t_eglQueryDebugKHR;
ANGLE_TRACE_EXPORT PFNEGLCLIENTWAITSYNCKHRPROC t_eglClientWaitSyncKHR;
ANGLE_TRACE_EXPORT PFNEGLCREATESYNCKHRPROC t_eglCreateSyncKHR;
ANGLE_TRACE_EXPORT PFNEGLDESTROYSYNCKHRPROC t_eglDestroySyncKHR;
ANGLE_TRACE_EXPORT PFNEGLGETSYNCATTRIBKHRPROC t_eglGetSyncAttribKHR;
ANGLE_TRACE_EXPORT PFNEGLCREATEIMAGEKHRPROC t_eglCreateImageKHR;
ANGLE_TRACE_EXPORT PFNEGLDESTROYIMAGEKHRPROC t_eglDestroyImageKHR;
ANGLE_TRACE_EXPORT PFNEGLCREATESTREAMKHRPROC t_eglCreateStreamKHR;
ANGLE_TRACE_EXPORT PFNEGLDESTROYSTREAMKHRPROC t_eglDestroyStreamKHR;
ANGLE_TRACE_EXPORT PFNEGLQUERYSTREAMKHRPROC t_eglQueryStreamKHR;
ANGLE_TRACE_EXPORT PFNEGLQUERYSTREAMU64KHRPROC t_eglQueryStreamu64KHR;
ANGLE_TRACE_EXPORT PFNEGLSTREAMATTRIBKHRPROC t_eglStreamAttribKHR;
ANGLE_TRACE_EXPORT PFNEGLSTREAMCONSUMERACQUIREKHRPROC t_eglStreamConsumerAcquireKHR;
ANGLE_TRACE_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC
t_eglStreamConsumerGLTextureExternalKHR;
ANGLE_TRACE_EXPORT PFNEGLSTREAMCONSUMERRELEASEKHRPROC t_eglStreamConsumerReleaseKHR;
ANGLE_TRACE_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC t_eglSwapBuffersWithDamageKHR;
ANGLE_TRACE_EXPORT PFNEGLWAITSYNCKHRPROC t_eglWaitSyncKHR;
ANGLE_TRACE_EXPORT PFNEGLPOSTSUBBUFFERNVPROC t_eglPostSubBufferNV;
ANGLE_TRACE_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC
t_eglStreamConsumerGLTextureExternalAttribsNV;
namespace trace_angle
{
void LoadEGL(LoadProc loadProc)
{
t_eglChooseConfig = reinterpret_cast<PFNEGLCHOOSECONFIGPROC>(loadProc("eglChooseConfig"));
t_eglCopyBuffers = reinterpret_cast<PFNEGLCOPYBUFFERSPROC>(loadProc("eglCopyBuffers"));
t_eglCreateContext = reinterpret_cast<PFNEGLCREATECONTEXTPROC>(loadProc("eglCreateContext"));
t_eglCreatePbufferSurface =
reinterpret_cast<PFNEGLCREATEPBUFFERSURFACEPROC>(loadProc("eglCreatePbufferSurface"));
t_eglCreatePixmapSurface =
reinterpret_cast<PFNEGLCREATEPIXMAPSURFACEPROC>(loadProc("eglCreatePixmapSurface"));
t_eglCreateWindowSurface =
reinterpret_cast<PFNEGLCREATEWINDOWSURFACEPROC>(loadProc("eglCreateWindowSurface"));
t_eglDestroyContext = reinterpret_cast<PFNEGLDESTROYCONTEXTPROC>(loadProc("eglDestroyContext"));
t_eglDestroySurface = reinterpret_cast<PFNEGLDESTROYSURFACEPROC>(loadProc("eglDestroySurface"));
t_eglGetConfigAttrib =
reinterpret_cast<PFNEGLGETCONFIGATTRIBPROC>(loadProc("eglGetConfigAttrib"));
t_eglGetConfigs = reinterpret_cast<PFNEGLGETCONFIGSPROC>(loadProc("eglGetConfigs"));
t_eglGetCurrentDisplay =
reinterpret_cast<PFNEGLGETCURRENTDISPLAYPROC>(loadProc("eglGetCurrentDisplay"));
t_eglGetCurrentSurface =
reinterpret_cast<PFNEGLGETCURRENTSURFACEPROC>(loadProc("eglGetCurrentSurface"));
t_eglGetDisplay = reinterpret_cast<PFNEGLGETDISPLAYPROC>(loadProc("eglGetDisplay"));
t_eglGetError = reinterpret_cast<PFNEGLGETERRORPROC>(loadProc("eglGetError"));
t_eglGetProcAddress = reinterpret_cast<PFNEGLGETPROCADDRESSPROC>(loadProc("eglGetProcAddress"));
t_eglInitialize = reinterpret_cast<PFNEGLINITIALIZEPROC>(loadProc("eglInitialize"));
t_eglMakeCurrent = reinterpret_cast<PFNEGLMAKECURRENTPROC>(loadProc("eglMakeCurrent"));
t_eglQueryContext = reinterpret_cast<PFNEGLQUERYCONTEXTPROC>(loadProc("eglQueryContext"));
t_eglQueryString = reinterpret_cast<PFNEGLQUERYSTRINGPROC>(loadProc("eglQueryString"));
t_eglQuerySurface = reinterpret_cast<PFNEGLQUERYSURFACEPROC>(loadProc("eglQuerySurface"));
t_eglSwapBuffers = reinterpret_cast<PFNEGLSWAPBUFFERSPROC>(loadProc("eglSwapBuffers"));
t_eglTerminate = reinterpret_cast<PFNEGLTERMINATEPROC>(loadProc("eglTerminate"));
t_eglWaitGL = reinterpret_cast<PFNEGLWAITGLPROC>(loadProc("eglWaitGL"));
t_eglWaitNative = reinterpret_cast<PFNEGLWAITNATIVEPROC>(loadProc("eglWaitNative"));
t_eglBindTexImage = reinterpret_cast<PFNEGLBINDTEXIMAGEPROC>(loadProc("eglBindTexImage"));
t_eglReleaseTexImage =
reinterpret_cast<PFNEGLRELEASETEXIMAGEPROC>(loadProc("eglReleaseTexImage"));
t_eglSurfaceAttrib = reinterpret_cast<PFNEGLSURFACEATTRIBPROC>(loadProc("eglSurfaceAttrib"));
t_eglSwapInterval = reinterpret_cast<PFNEGLSWAPINTERVALPROC>(loadProc("eglSwapInterval"));
t_eglBindAPI = reinterpret_cast<PFNEGLBINDAPIPROC>(loadProc("eglBindAPI"));
t_eglQueryAPI = reinterpret_cast<PFNEGLQUERYAPIPROC>(loadProc("eglQueryAPI"));
t_eglCreatePbufferFromClientBuffer = reinterpret_cast<PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC>(
loadProc("eglCreatePbufferFromClientBuffer"));
t_eglReleaseThread = reinterpret_cast<PFNEGLRELEASETHREADPROC>(loadProc("eglReleaseThread"));
t_eglWaitClient = reinterpret_cast<PFNEGLWAITCLIENTPROC>(loadProc("eglWaitClient"));
t_eglGetCurrentContext =
reinterpret_cast<PFNEGLGETCURRENTCONTEXTPROC>(loadProc("eglGetCurrentContext"));
t_eglCreateSync = reinterpret_cast<PFNEGLCREATESYNCPROC>(loadProc("eglCreateSync"));
t_eglDestroySync = reinterpret_cast<PFNEGLDESTROYSYNCPROC>(loadProc("eglDestroySync"));
t_eglClientWaitSync = reinterpret_cast<PFNEGLCLIENTWAITSYNCPROC>(loadProc("eglClientWaitSync"));
t_eglGetSyncAttrib = reinterpret_cast<PFNEGLGETSYNCATTRIBPROC>(loadProc("eglGetSyncAttrib"));
t_eglCreateImage = reinterpret_cast<PFNEGLCREATEIMAGEPROC>(loadProc("eglCreateImage"));
t_eglDestroyImage = reinterpret_cast<PFNEGLDESTROYIMAGEPROC>(loadProc("eglDestroyImage"));
t_eglGetPlatformDisplay =
reinterpret_cast<PFNEGLGETPLATFORMDISPLAYPROC>(loadProc("eglGetPlatformDisplay"));
t_eglCreatePlatformWindowSurface = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEPROC>(
loadProc("eglCreatePlatformWindowSurface"));
t_eglCreatePlatformPixmapSurface = reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC>(
loadProc("eglCreatePlatformPixmapSurface"));
t_eglWaitSync = reinterpret_cast<PFNEGLWAITSYNCPROC>(loadProc("eglWaitSync"));
t_eglSetBlobCacheFuncsANDROID = reinterpret_cast<PFNEGLSETBLOBCACHEFUNCSANDROIDPROC>(
loadProc("eglSetBlobCacheFuncsANDROID"));
t_eglGetCompositorTimingANDROID = reinterpret_cast<PFNEGLGETCOMPOSITORTIMINGANDROIDPROC>(
loadProc("eglGetCompositorTimingANDROID"));
t_eglGetCompositorTimingSupportedANDROID =
reinterpret_cast<PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC>(
loadProc("eglGetCompositorTimingSupportedANDROID"));
t_eglGetFrameTimestampSupportedANDROID =
reinterpret_cast<PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC>(
loadProc("eglGetFrameTimestampSupportedANDROID"));
t_eglGetFrameTimestampsANDROID = reinterpret_cast<PFNEGLGETFRAMETIMESTAMPSANDROIDPROC>(
loadProc("eglGetFrameTimestampsANDROID"));
t_eglGetNextFrameIdANDROID =
reinterpret_cast<PFNEGLGETNEXTFRAMEIDANDROIDPROC>(loadProc("eglGetNextFrameIdANDROID"));
t_eglGetNativeClientBufferANDROID = reinterpret_cast<PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC>(
loadProc("eglGetNativeClientBufferANDROID"));
t_eglDupNativeFenceFDANDROID =
reinterpret_cast<PFNEGLDUPNATIVEFENCEFDANDROIDPROC>(loadProc("eglDupNativeFenceFDANDROID"));
t_eglPresentationTimeANDROID =
reinterpret_cast<PFNEGLPRESENTATIONTIMEANDROIDPROC>(loadProc("eglPresentationTimeANDROID"));
t_eglCreateDeviceANGLE =
reinterpret_cast<PFNEGLCREATEDEVICEANGLEPROC>(loadProc("eglCreateDeviceANGLE"));
t_eglReleaseDeviceANGLE =
reinterpret_cast<PFNEGLRELEASEDEVICEANGLEPROC>(loadProc("eglReleaseDeviceANGLE"));
t_eglQueryDisplayAttribANGLE =
reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBANGLEPROC>(loadProc("eglQueryDisplayAttribANGLE"));
t_eglQueryStringiANGLE =
reinterpret_cast<PFNEGLQUERYSTRINGIANGLEPROC>(loadProc("eglQueryStringiANGLE"));
t_eglHandleGPUSwitchANGLE =
reinterpret_cast<PFNEGLHANDLEGPUSWITCHANGLEPROC>(loadProc("eglHandleGPUSwitchANGLE"));
t_eglReacquireHighPowerGPUANGLE = reinterpret_cast<PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC>(
loadProc("eglReacquireHighPowerGPUANGLE"));
t_eglReleaseHighPowerGPUANGLE = reinterpret_cast<PFNEGLRELEASEHIGHPOWERGPUANGLEPROC>(
loadProc("eglReleaseHighPowerGPUANGLE"));
t_eglProgramCacheGetAttribANGLE = reinterpret_cast<PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC>(
loadProc("eglProgramCacheGetAttribANGLE"));
t_eglProgramCachePopulateANGLE = reinterpret_cast<PFNEGLPROGRAMCACHEPOPULATEANGLEPROC>(
loadProc("eglProgramCachePopulateANGLE"));
t_eglProgramCacheQueryANGLE =
reinterpret_cast<PFNEGLPROGRAMCACHEQUERYANGLEPROC>(loadProc("eglProgramCacheQueryANGLE"));
t_eglProgramCacheResizeANGLE =
reinterpret_cast<PFNEGLPROGRAMCACHERESIZEANGLEPROC>(loadProc("eglProgramCacheResizeANGLE"));
t_eglQuerySurfacePointerANGLE = reinterpret_cast<PFNEGLQUERYSURFACEPOINTERANGLEPROC>(
loadProc("eglQuerySurfacePointerANGLE"));
t_eglCreateStreamProducerD3DTextureANGLE =
reinterpret_cast<PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC>(
loadProc("eglCreateStreamProducerD3DTextureANGLE"));
t_eglStreamPostD3DTextureANGLE = reinterpret_cast<PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC>(
loadProc("eglStreamPostD3DTextureANGLE"));
t_eglSwapBuffersWithFrameTokenANGLE =
reinterpret_cast<PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC>(
loadProc("eglSwapBuffersWithFrameTokenANGLE"));
t_eglGetMscRateANGLE =
reinterpret_cast<PFNEGLGETMSCRATEANGLEPROC>(loadProc("eglGetMscRateANGLE"));
t_eglGetSyncValuesCHROMIUM =
reinterpret_cast<PFNEGLGETSYNCVALUESCHROMIUMPROC>(loadProc("eglGetSyncValuesCHROMIUM"));
t_eglQueryDeviceAttribEXT =
reinterpret_cast<PFNEGLQUERYDEVICEATTRIBEXTPROC>(loadProc("eglQueryDeviceAttribEXT"));
t_eglQueryDeviceStringEXT =
reinterpret_cast<PFNEGLQUERYDEVICESTRINGEXTPROC>(loadProc("eglQueryDeviceStringEXT"));
t_eglQueryDisplayAttribEXT =
reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBEXTPROC>(loadProc("eglQueryDisplayAttribEXT"));
t_eglCreatePlatformPixmapSurfaceEXT =
reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC>(
loadProc("eglCreatePlatformPixmapSurfaceEXT"));
t_eglCreatePlatformWindowSurfaceEXT =
reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC>(
loadProc("eglCreatePlatformWindowSurfaceEXT"));
t_eglGetPlatformDisplayEXT =
reinterpret_cast<PFNEGLGETPLATFORMDISPLAYEXTPROC>(loadProc("eglGetPlatformDisplayEXT"));
t_eglDebugMessageControlKHR =
reinterpret_cast<PFNEGLDEBUGMESSAGECONTROLKHRPROC>(loadProc("eglDebugMessageControlKHR"));
t_eglLabelObjectKHR = reinterpret_cast<PFNEGLLABELOBJECTKHRPROC>(loadProc("eglLabelObjectKHR"));
t_eglQueryDebugKHR = reinterpret_cast<PFNEGLQUERYDEBUGKHRPROC>(loadProc("eglQueryDebugKHR"));
t_eglClientWaitSyncKHR =
reinterpret_cast<PFNEGLCLIENTWAITSYNCKHRPROC>(loadProc("eglClientWaitSyncKHR"));
t_eglCreateSyncKHR = reinterpret_cast<PFNEGLCREATESYNCKHRPROC>(loadProc("eglCreateSyncKHR"));
t_eglDestroySyncKHR = reinterpret_cast<PFNEGLDESTROYSYNCKHRPROC>(loadProc("eglDestroySyncKHR"));
t_eglGetSyncAttribKHR =
reinterpret_cast<PFNEGLGETSYNCATTRIBKHRPROC>(loadProc("eglGetSyncAttribKHR"));
t_eglCreateImageKHR = reinterpret_cast<PFNEGLCREATEIMAGEKHRPROC>(loadProc("eglCreateImageKHR"));
t_eglDestroyImageKHR =
reinterpret_cast<PFNEGLDESTROYIMAGEKHRPROC>(loadProc("eglDestroyImageKHR"));
t_eglCreateStreamKHR =
reinterpret_cast<PFNEGLCREATESTREAMKHRPROC>(loadProc("eglCreateStreamKHR"));
t_eglDestroyStreamKHR =
reinterpret_cast<PFNEGLDESTROYSTREAMKHRPROC>(loadProc("eglDestroyStreamKHR"));
t_eglQueryStreamKHR = reinterpret_cast<PFNEGLQUERYSTREAMKHRPROC>(loadProc("eglQueryStreamKHR"));
t_eglQueryStreamu64KHR =
reinterpret_cast<PFNEGLQUERYSTREAMU64KHRPROC>(loadProc("eglQueryStreamu64KHR"));
t_eglStreamAttribKHR =
reinterpret_cast<PFNEGLSTREAMATTRIBKHRPROC>(loadProc("eglStreamAttribKHR"));
t_eglStreamConsumerAcquireKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERACQUIREKHRPROC>(
loadProc("eglStreamConsumerAcquireKHR"));
t_eglStreamConsumerGLTextureExternalKHR =
reinterpret_cast<PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC>(
loadProc("eglStreamConsumerGLTextureExternalKHR"));
t_eglStreamConsumerReleaseKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERRELEASEKHRPROC>(
loadProc("eglStreamConsumerReleaseKHR"));
t_eglSwapBuffersWithDamageKHR = reinterpret_cast<PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC>(
loadProc("eglSwapBuffersWithDamageKHR"));
t_eglWaitSyncKHR = reinterpret_cast<PFNEGLWAITSYNCKHRPROC>(loadProc("eglWaitSyncKHR"));
t_eglPostSubBufferNV =
reinterpret_cast<PFNEGLPOSTSUBBUFFERNVPROC>(loadProc("eglPostSubBufferNV"));
t_eglStreamConsumerGLTextureExternalAttribsNV =
reinterpret_cast<PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC>(
loadProc("eglStreamConsumerGLTextureExternalAttribsNV"));
}
} // namespace trace_angle
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_loader.py using data from egl.xml and egl_angle_ext.xml.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// egl_loader_autogen.h:
// Simple EGL function loader.
#ifndef ANGLE_RESTRICTED_TRACES_EGL_LOADER_AUTOGEN_H_
#define ANGLE_RESTRICTED_TRACES_EGL_LOADER_AUTOGEN_H_
#include "restricted_traces_autogen.h"
#include <EGL/egl.h>
#include <EGL/eglext.h>
#define eglChooseConfig t_eglChooseConfig
#define eglCopyBuffers t_eglCopyBuffers
#define eglCreateContext t_eglCreateContext
#define eglCreatePbufferSurface t_eglCreatePbufferSurface
#define eglCreatePixmapSurface t_eglCreatePixmapSurface
#define eglCreateWindowSurface t_eglCreateWindowSurface
#define eglDestroyContext t_eglDestroyContext
#define eglDestroySurface t_eglDestroySurface
#define eglGetConfigAttrib t_eglGetConfigAttrib
#define eglGetConfigs t_eglGetConfigs
#define eglGetCurrentDisplay t_eglGetCurrentDisplay
#define eglGetCurrentSurface t_eglGetCurrentSurface
#define eglGetDisplay t_eglGetDisplay
#define eglGetError t_eglGetError
#define eglGetProcAddress t_eglGetProcAddress
#define eglInitialize t_eglInitialize
#define eglMakeCurrent t_eglMakeCurrent
#define eglQueryContext t_eglQueryContext
#define eglQueryString t_eglQueryString
#define eglQuerySurface t_eglQuerySurface
#define eglSwapBuffers t_eglSwapBuffers
#define eglTerminate t_eglTerminate
#define eglWaitGL t_eglWaitGL
#define eglWaitNative t_eglWaitNative
#define eglBindTexImage t_eglBindTexImage
#define eglReleaseTexImage t_eglReleaseTexImage
#define eglSurfaceAttrib t_eglSurfaceAttrib
#define eglSwapInterval t_eglSwapInterval
#define eglBindAPI t_eglBindAPI
#define eglQueryAPI t_eglQueryAPI
#define eglCreatePbufferFromClientBuffer t_eglCreatePbufferFromClientBuffer
#define eglReleaseThread t_eglReleaseThread
#define eglWaitClient t_eglWaitClient
#define eglGetCurrentContext t_eglGetCurrentContext
#define eglCreateSync t_eglCreateSync
#define eglDestroySync t_eglDestroySync
#define eglClientWaitSync t_eglClientWaitSync
#define eglGetSyncAttrib t_eglGetSyncAttrib
#define eglCreateImage t_eglCreateImage
#define eglDestroyImage t_eglDestroyImage
#define eglGetPlatformDisplay t_eglGetPlatformDisplay
#define eglCreatePlatformWindowSurface t_eglCreatePlatformWindowSurface
#define eglCreatePlatformPixmapSurface t_eglCreatePlatformPixmapSurface
#define eglWaitSync t_eglWaitSync
#define eglSetBlobCacheFuncsANDROID t_eglSetBlobCacheFuncsANDROID
#define eglGetCompositorTimingANDROID t_eglGetCompositorTimingANDROID
#define eglGetCompositorTimingSupportedANDROID t_eglGetCompositorTimingSupportedANDROID
#define eglGetFrameTimestampSupportedANDROID t_eglGetFrameTimestampSupportedANDROID
#define eglGetFrameTimestampsANDROID t_eglGetFrameTimestampsANDROID
#define eglGetNextFrameIdANDROID t_eglGetNextFrameIdANDROID
#define eglGetNativeClientBufferANDROID t_eglGetNativeClientBufferANDROID
#define eglDupNativeFenceFDANDROID t_eglDupNativeFenceFDANDROID
#define eglPresentationTimeANDROID t_eglPresentationTimeANDROID
#define eglCreateDeviceANGLE t_eglCreateDeviceANGLE
#define eglReleaseDeviceANGLE t_eglReleaseDeviceANGLE
#define eglQueryDisplayAttribANGLE t_eglQueryDisplayAttribANGLE
#define eglQueryStringiANGLE t_eglQueryStringiANGLE
#define eglHandleGPUSwitchANGLE t_eglHandleGPUSwitchANGLE
#define eglReacquireHighPowerGPUANGLE t_eglReacquireHighPowerGPUANGLE
#define eglReleaseHighPowerGPUANGLE t_eglReleaseHighPowerGPUANGLE
#define eglProgramCacheGetAttribANGLE t_eglProgramCacheGetAttribANGLE
#define eglProgramCachePopulateANGLE t_eglProgramCachePopulateANGLE
#define eglProgramCacheQueryANGLE t_eglProgramCacheQueryANGLE
#define eglProgramCacheResizeANGLE t_eglProgramCacheResizeANGLE
#define eglQuerySurfacePointerANGLE t_eglQuerySurfacePointerANGLE
#define eglCreateStreamProducerD3DTextureANGLE t_eglCreateStreamProducerD3DTextureANGLE
#define eglStreamPostD3DTextureANGLE t_eglStreamPostD3DTextureANGLE
#define eglSwapBuffersWithFrameTokenANGLE t_eglSwapBuffersWithFrameTokenANGLE
#define eglGetMscRateANGLE t_eglGetMscRateANGLE
#define eglGetSyncValuesCHROMIUM t_eglGetSyncValuesCHROMIUM
#define eglQueryDeviceAttribEXT t_eglQueryDeviceAttribEXT
#define eglQueryDeviceStringEXT t_eglQueryDeviceStringEXT
#define eglQueryDisplayAttribEXT t_eglQueryDisplayAttribEXT
#define eglCreatePlatformPixmapSurfaceEXT t_eglCreatePlatformPixmapSurfaceEXT
#define eglCreatePlatformWindowSurfaceEXT t_eglCreatePlatformWindowSurfaceEXT
#define eglGetPlatformDisplayEXT t_eglGetPlatformDisplayEXT
#define eglDebugMessageControlKHR t_eglDebugMessageControlKHR
#define eglLabelObjectKHR t_eglLabelObjectKHR
#define eglQueryDebugKHR t_eglQueryDebugKHR
#define eglClientWaitSyncKHR t_eglClientWaitSyncKHR
#define eglCreateSyncKHR t_eglCreateSyncKHR
#define eglDestroySyncKHR t_eglDestroySyncKHR
#define eglGetSyncAttribKHR t_eglGetSyncAttribKHR
#define eglCreateImageKHR t_eglCreateImageKHR
#define eglDestroyImageKHR t_eglDestroyImageKHR
#define eglCreateStreamKHR t_eglCreateStreamKHR
#define eglDestroyStreamKHR t_eglDestroyStreamKHR
#define eglQueryStreamKHR t_eglQueryStreamKHR
#define eglQueryStreamu64KHR t_eglQueryStreamu64KHR
#define eglStreamAttribKHR t_eglStreamAttribKHR
#define eglStreamConsumerAcquireKHR t_eglStreamConsumerAcquireKHR
#define eglStreamConsumerGLTextureExternalKHR t_eglStreamConsumerGLTextureExternalKHR
#define eglStreamConsumerReleaseKHR t_eglStreamConsumerReleaseKHR
#define eglSwapBuffersWithDamageKHR t_eglSwapBuffersWithDamageKHR
#define eglWaitSyncKHR t_eglWaitSyncKHR
#define eglPostSubBufferNV t_eglPostSubBufferNV
#define eglStreamConsumerGLTextureExternalAttribsNV t_eglStreamConsumerGLTextureExternalAttribsNV
ANGLE_TRACE_EXPORT extern PFNEGLCHOOSECONFIGPROC t_eglChooseConfig;
ANGLE_TRACE_EXPORT extern PFNEGLCOPYBUFFERSPROC t_eglCopyBuffers;
ANGLE_TRACE_EXPORT extern PFNEGLCREATECONTEXTPROC t_eglCreateContext;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPBUFFERSURFACEPROC t_eglCreatePbufferSurface;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPIXMAPSURFACEPROC t_eglCreatePixmapSurface;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEWINDOWSURFACEPROC t_eglCreateWindowSurface;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYCONTEXTPROC t_eglDestroyContext;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYSURFACEPROC t_eglDestroySurface;
ANGLE_TRACE_EXPORT extern PFNEGLGETCONFIGATTRIBPROC t_eglGetConfigAttrib;
ANGLE_TRACE_EXPORT extern PFNEGLGETCONFIGSPROC t_eglGetConfigs;
ANGLE_TRACE_EXPORT extern PFNEGLGETCURRENTDISPLAYPROC t_eglGetCurrentDisplay;
ANGLE_TRACE_EXPORT extern PFNEGLGETCURRENTSURFACEPROC t_eglGetCurrentSurface;
ANGLE_TRACE_EXPORT extern PFNEGLGETDISPLAYPROC t_eglGetDisplay;
ANGLE_TRACE_EXPORT extern PFNEGLGETERRORPROC t_eglGetError;
ANGLE_TRACE_EXPORT extern PFNEGLGETPROCADDRESSPROC t_eglGetProcAddress;
ANGLE_TRACE_EXPORT extern PFNEGLINITIALIZEPROC t_eglInitialize;
ANGLE_TRACE_EXPORT extern PFNEGLMAKECURRENTPROC t_eglMakeCurrent;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYCONTEXTPROC t_eglQueryContext;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYSTRINGPROC t_eglQueryString;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYSURFACEPROC t_eglQuerySurface;
ANGLE_TRACE_EXPORT extern PFNEGLSWAPBUFFERSPROC t_eglSwapBuffers;
ANGLE_TRACE_EXPORT extern PFNEGLTERMINATEPROC t_eglTerminate;
ANGLE_TRACE_EXPORT extern PFNEGLWAITGLPROC t_eglWaitGL;
ANGLE_TRACE_EXPORT extern PFNEGLWAITNATIVEPROC t_eglWaitNative;
ANGLE_TRACE_EXPORT extern PFNEGLBINDTEXIMAGEPROC t_eglBindTexImage;
ANGLE_TRACE_EXPORT extern PFNEGLRELEASETEXIMAGEPROC t_eglReleaseTexImage;
ANGLE_TRACE_EXPORT extern PFNEGLSURFACEATTRIBPROC t_eglSurfaceAttrib;
ANGLE_TRACE_EXPORT extern PFNEGLSWAPINTERVALPROC t_eglSwapInterval;
ANGLE_TRACE_EXPORT extern PFNEGLBINDAPIPROC t_eglBindAPI;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYAPIPROC t_eglQueryAPI;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC
t_eglCreatePbufferFromClientBuffer;
ANGLE_TRACE_EXPORT extern PFNEGLRELEASETHREADPROC t_eglReleaseThread;
ANGLE_TRACE_EXPORT extern PFNEGLWAITCLIENTPROC t_eglWaitClient;
ANGLE_TRACE_EXPORT extern PFNEGLGETCURRENTCONTEXTPROC t_eglGetCurrentContext;
ANGLE_TRACE_EXPORT extern PFNEGLCREATESYNCPROC t_eglCreateSync;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYSYNCPROC t_eglDestroySync;
ANGLE_TRACE_EXPORT extern PFNEGLCLIENTWAITSYNCPROC t_eglClientWaitSync;
ANGLE_TRACE_EXPORT extern PFNEGLGETSYNCATTRIBPROC t_eglGetSyncAttrib;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEIMAGEPROC t_eglCreateImage;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYIMAGEPROC t_eglDestroyImage;
ANGLE_TRACE_EXPORT extern PFNEGLGETPLATFORMDISPLAYPROC t_eglGetPlatformDisplay;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEPROC t_eglCreatePlatformWindowSurface;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC t_eglCreatePlatformPixmapSurface;
ANGLE_TRACE_EXPORT extern PFNEGLWAITSYNCPROC t_eglWaitSync;
ANGLE_TRACE_EXPORT extern PFNEGLSETBLOBCACHEFUNCSANDROIDPROC t_eglSetBlobCacheFuncsANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLGETCOMPOSITORTIMINGANDROIDPROC t_eglGetCompositorTimingANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC
t_eglGetCompositorTimingSupportedANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC
t_eglGetFrameTimestampSupportedANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLGETFRAMETIMESTAMPSANDROIDPROC t_eglGetFrameTimestampsANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLGETNEXTFRAMEIDANDROIDPROC t_eglGetNextFrameIdANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC t_eglGetNativeClientBufferANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLDUPNATIVEFENCEFDANDROIDPROC t_eglDupNativeFenceFDANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLPRESENTATIONTIMEANDROIDPROC t_eglPresentationTimeANDROID;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEDEVICEANGLEPROC t_eglCreateDeviceANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLRELEASEDEVICEANGLEPROC t_eglReleaseDeviceANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYDISPLAYATTRIBANGLEPROC t_eglQueryDisplayAttribANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYSTRINGIANGLEPROC t_eglQueryStringiANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLHANDLEGPUSWITCHANGLEPROC t_eglHandleGPUSwitchANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC t_eglReacquireHighPowerGPUANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLRELEASEHIGHPOWERGPUANGLEPROC t_eglReleaseHighPowerGPUANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC t_eglProgramCacheGetAttribANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLPROGRAMCACHEPOPULATEANGLEPROC t_eglProgramCachePopulateANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLPROGRAMCACHEQUERYANGLEPROC t_eglProgramCacheQueryANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLPROGRAMCACHERESIZEANGLEPROC t_eglProgramCacheResizeANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYSURFACEPOINTERANGLEPROC t_eglQuerySurfacePointerANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC
t_eglCreateStreamProducerD3DTextureANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC t_eglStreamPostD3DTextureANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC
t_eglSwapBuffersWithFrameTokenANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLGETMSCRATEANGLEPROC t_eglGetMscRateANGLE;
ANGLE_TRACE_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC t_eglGetSyncValuesCHROMIUM;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC t_eglQueryDeviceAttribEXT;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC t_eglQueryDeviceStringEXT;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYDISPLAYATTRIBEXTPROC t_eglQueryDisplayAttribEXT;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
t_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC
t_eglCreatePlatformWindowSurfaceEXT;
ANGLE_TRACE_EXPORT extern PFNEGLGETPLATFORMDISPLAYEXTPROC t_eglGetPlatformDisplayEXT;
ANGLE_TRACE_EXPORT extern PFNEGLDEBUGMESSAGECONTROLKHRPROC t_eglDebugMessageControlKHR;
ANGLE_TRACE_EXPORT extern PFNEGLLABELOBJECTKHRPROC t_eglLabelObjectKHR;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYDEBUGKHRPROC t_eglQueryDebugKHR;
ANGLE_TRACE_EXPORT extern PFNEGLCLIENTWAITSYNCKHRPROC t_eglClientWaitSyncKHR;
ANGLE_TRACE_EXPORT extern PFNEGLCREATESYNCKHRPROC t_eglCreateSyncKHR;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYSYNCKHRPROC t_eglDestroySyncKHR;
ANGLE_TRACE_EXPORT extern PFNEGLGETSYNCATTRIBKHRPROC t_eglGetSyncAttribKHR;
ANGLE_TRACE_EXPORT extern PFNEGLCREATEIMAGEKHRPROC t_eglCreateImageKHR;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYIMAGEKHRPROC t_eglDestroyImageKHR;
ANGLE_TRACE_EXPORT extern PFNEGLCREATESTREAMKHRPROC t_eglCreateStreamKHR;
ANGLE_TRACE_EXPORT extern PFNEGLDESTROYSTREAMKHRPROC t_eglDestroyStreamKHR;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYSTREAMKHRPROC t_eglQueryStreamKHR;
ANGLE_TRACE_EXPORT extern PFNEGLQUERYSTREAMU64KHRPROC t_eglQueryStreamu64KHR;
ANGLE_TRACE_EXPORT extern PFNEGLSTREAMATTRIBKHRPROC t_eglStreamAttribKHR;
ANGLE_TRACE_EXPORT extern PFNEGLSTREAMCONSUMERACQUIREKHRPROC t_eglStreamConsumerAcquireKHR;
ANGLE_TRACE_EXPORT extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC
t_eglStreamConsumerGLTextureExternalKHR;
ANGLE_TRACE_EXPORT extern PFNEGLSTREAMCONSUMERRELEASEKHRPROC t_eglStreamConsumerReleaseKHR;
ANGLE_TRACE_EXPORT extern PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC t_eglSwapBuffersWithDamageKHR;
ANGLE_TRACE_EXPORT extern PFNEGLWAITSYNCKHRPROC t_eglWaitSyncKHR;
ANGLE_TRACE_EXPORT extern PFNEGLPOSTSUBBUFFERNVPROC t_eglPostSubBufferNV;
ANGLE_TRACE_EXPORT extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC
t_eglStreamConsumerGLTextureExternalAttribsNV;
namespace trace_angle
{
using GenericProc = void (*)();
using LoadProc = GenericProc(KHRONOS_APIENTRY *)(const char *);
ANGLE_TRACE_EXPORT void LoadEGL(LoadProc loadProc);
} // namespace trace_angle
#endif // ANGLE_RESTRICTED_TRACES_EGL_LOADER_AUTOGEN_H_
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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